чем можно парсить строку

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

чем можно парсить строку

Сообщение grigoreo » 31.03.2009 15:58:53

не нашел почему то сам такую функцию кто знает подскажите, к примеру есть текст '123,3243,dsffgds,123412' вообщем разделеный запятой(сепаратором), нужна функция которая бы парсила строку по сепаратору то есть оригинальную стоку уменьшала на первый текс разделеный запятой и возращала его как текст, и так пока базовая строка не станет пустой
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: чем можно парсить строку

Сообщение Alexx2000 » 31.03.2009 16:21:46

Модуль StrUtils, функция Copy2SymbDel будет это делать, если использовать её в цикле.
Аватара пользователя
Alexx2000
постоялец
 
Сообщения: 488
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи

Re: чем можно парсить строку

Сообщение Attid » 31.03.2009 16:37:35

ну вот а я сам писал =)

Код: Выделить всё
procedure tmainfo.btPrintFileEx(const sender: TObject);
procedure getvalue(var vStr,vResult: string);
var i: integer;
begin
  i := system.pos(';',vStr);
  if i < 1 then i := 60;
  vResult := copy(vStr,1,i-1);
  delete(vStr,1,i);
end;

var f : textfile;
    l,b,s,n : string;

begin
  if (fd.execute = mr_Ok) and fileexists(fd.controller.filename) then
  begin
    //BARCODE;NUMBER;SERIA

    AssignFile(f,fd.controller.filename);
    reset(f);
    while not eof(f) do
    begin
      b := '';
      n := '';
      s := '';
     
     readln(f,l);
      if trim(l) = '' then continue;
      
     getvalue(l,b);
     getvalue(l,n);
     getvalue(l,s);
    end;
  end; 
end;
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: чем можно парсить строку

Сообщение Ism » 31.03.2009 22:05:43

ExtractWord , подробности в хелпе лазеруса
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: чем можно парсить строку

Сообщение grigoreo » 31.03.2009 22:39:15

Alexx2000 писал(а):Модуль StrUtils, функция Copy2SymbDel будет это делать, если использовать её в цикле.


Спасибо всем, подошло :D
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: чем можно парсить строку

Сообщение Vadim » 01.04.2009 05:41:56

grigoreo
А ещё можно использовать TStringList, поставив ему свойство Delimiter = ',' (т.е. Вашу запятую) и загрузив исходный текст в TStringList.DelimitedText. Тогда в каждой строке TStringList'а будет находится по одному слову.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

Рейтинг@Mail.ru