| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > замена в Lisp запятых на точки!

замена в Lisp запятых на точки!

Ответ
Поиск в этой теме
Непрочитано 20.01.2010, 20:07 #1
замена в Lisp запятых на точки!
vadik_k_l
 
Регистрация: 20.01.2010
Сообщений: 10

Как заменить в Lisp запятые на точки в ini-файле???
и может кто знает команду Delphi для очистки ини-файла ?
Просмотров: 3312
 
Непрочитано 20.01.2010, 20:26
#2
SetQ

конструктор
 
Регистрация: 21.07.2007
Петрозаводск
Сообщений: 1,983


Читаешь построчно ini, заменяешь в строке зпт на тчк vl-string-subst , пишешь в новый файл.
SetQ вне форума  
 
Автор темы   Непрочитано 20.01.2010, 21:10
#3
vadik_k_l


 
Регистрация: 20.01.2010
Сообщений: 10


это понятно я по коду не знаю как это написать?
Если можно код полностью пожалуйста!
vadik_k_l вне форума  
 
Непрочитано 20.01.2010, 22:31
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853


Код полностью - а что он должен делать? Преобразование строковых переменных можно и в лиспе делать, решение см.#2
Код:
[Выделить все]
(defun test (/ file handle *error* str lst)

  (defun *error* (msg)
    (vl-catch-all-apply
      (function
        (lambda ()
          (close handle)
          ) ;_ end of lambda
        ) ;_ end of function
      ) ;_ end of vl-catch-all-apply
    (princ msg)
    (princ)
    ) ;_ end of defun

  (if (and (setq file (getfiled "ini-file" "" "ini" 4))
           (findfile file)
           ) ;_ end of and
    (progn
      (setq handle (open file "r"))
      (while (setq str (read-line handle))
        (setq lst (cons str lst))
        ) ;_ end of while
      (close handle)
      (setq lst (mapcar (function
                          (lambda (x)
                            (vl-string-subst "." "," x)
                            ) ;_ end of lambda
                          ) ;_ end of function
                        (reverse lst)
                        ) ;_ end of mapcar
            ) ;_ end of setq
      (setq handle (open file "w"))
      (foreach item lst
        (write-line item handle)
        ) ;_ end of foreach
      (close handle)
      ) ;_ end of progn
    ) ;_ end of if
  (princ)
  ) ;_ end of defun
выполнит преобразование из
Код:
[Выделить все]
[Group1]
key1=16
key2=5,65,32
key3=6,54
[Group2]
key1=a
key2=с
key3=c,d,e
в
Код:
[Выделить все]
[Group1]
key1=16
key2=5.65,32
key3=6.54
[Group2]
key1=a
key2=с
key3=c.d,e
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 20.01.2010 в 22:38.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.01.2010, 22:34
#5
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>и может кто знает команду Delphi для очистки ини-файла ?
что значит очистка? стереть? создать пустой файл?
zamtmn вне форума  
 
Непрочитано 20.01.2010, 22:52
#6
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


vadik_k_l, А тебе необходимо заменить все запятые на точки?
Если нужно сделать замену вообще всех запятых, то можно и гораздо быстрее...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 22.01.2010, 10:23
#7
vadik_k_l


 
Регистрация: 20.01.2010
Сообщений: 10


спасибо больщое Алексей, то что надо!
а все запятые мне не надо, у меня как раз по одной в срочке!!!
zamtmn а ини файл мне надо стереть, т.е. удалить из него все!
vadik_k_l вне форума  
 
Непрочитано 22.01.2010, 11:34
#8
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>> а ини файл мне надо стереть, т.е. удалить из него все!
вариантов работы с файлами много. один из
Код:
[Выделить все]
filehandle := FileCreate(path);
FileClose(filehandle);
создает и открывает, затем закрывает файл. если файл уже был на диске, перезаписывает его
в результате имеем файл нулевой длины
zamtmn вне форума  
 
Автор темы   Непрочитано 25.01.2010, 10:29
#9
vadik_k_l


 
Регистрация: 20.01.2010
Сообщений: 10


а что такое path в этом коде?
vadik_k_l вне форума  
 
Непрочитано 25.01.2010, 10:37
#10
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Смотри справку по FileCreate

можно так
Код:
[Выделить все]
var
    filehandle:integer;
    path:string;
begin
path:='c:\myprog\mysuperpuper.ini';
filehandle := FileCreate(path);
FileClose(filehandle);
.....
а можно так
Код:
[Выделить все]
var
    filehandle:integer;
begin
filehandle := FileCreate('c:\myprog\mysuperpuper.ini');
FileClose(filehandle);
.....

Последний раз редактировалось zamtmn, 25.01.2010 в 10:48.
zamtmn вне форума  
 
Автор темы   Непрочитано 25.01.2010, 20:21
#11
vadik_k_l


 
Регистрация: 20.01.2010
Сообщений: 10


оно конечно все хорошо, вот только переменная у меня не Integer, a TIniFile.......и
FileCreate для нее не подходит !!!!!

Последний раз редактировалось vadik_k_l, 26.01.2010 в 19:33.
vadik_k_l вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > замена в Lisp запятых на точки!

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Замена текстового стиля VVA Готовые программы 306 03.04.2024 08:15
lisp: Длина по полилинии до точки vosh LISP 19 15.07.2013 15:10
LISP для поиска групп (наборов) одинаковых примитивов и замена их блоком ElectroBOG LISP 20 23.07.2010 16:00
Координаты точки пересечения line и pline (LISP) paradoxvaha LISP 3 10.07.2007 13:04
Lisp - проблема с получением точки? Кулик Алексей aka kpblc LISP 3 08.09.2006 15:14