Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

как избавиться от ограничения ???, а перемещаться по строке до, н   Найти похожие ветки 

 
Виталий00 ©   (2005-10-21 22:56) [0]

Здравствуйте!

Как избавиться от ограничения ???,
а перемещаться по строке до, например # или запятой

procedure TForm1.Button2Click(Sender: TObject);
var
       FName: textfile;
       s: string[17];//как избавиться от ограничения ???, а перемещаться по строке до, например # или запятой
       s1: string[27];
       s2: string[17];
       s3: string[60];
       s4: string[7];
       s5: string[10];
       item: Tlistitem;
begin
       AssignFile(FName,"log.txt");
       Reset(FName);
       try
               while not Eof(FName) do
               begin
                       Readln(FName, s, s1, s2, s3, s4, s5);
                       item:= ListView1.items.add;
                       item.caption:= s;
                       item.SubItems.Add(s1);
                       item.SubItems.Add(s2);
                       item.SubItems.Add(s3);
                       item.SubItems.Add(s4);
                       item.SubItems.Add(s5);
               end;
       finally
               closefile(FName);
       end;
end;


 
Zeqfreed ©   (2005-10-21 23:09) [1]

Виталий00 ©   (21.10.05 22:56)
Мягко говоря, ...
В общем, сформулируй свой вопрос по-корректней.

Какое такое ограничение? И чем оно тебе мешает?


 
Виталий00 ©   (2005-10-21 23:16) [2]

У меня прописано ограничение строки, к примеру string[12], что означает что я беру строку в 12 знаков, но как сделать чтобы брать количество знаков из текстового файла например до знака "#" или запятой, т.е. конкретно не прописывать, это будет определено текстом в строке, может это будет 20 знаков!?


 
Zeqfreed ©   (2005-10-21 23:22) [3]

Виталий00 ©   (21.10.05 23:16) [2]
Ну, я бы выбрал такой вариант: читать всю строку и делать парсинг (разбор строки на необходимые части).

Напрямую то, что ты хочешь реализовать нельзя.


 
Виталий00 ©   (2005-10-21 23:29) [4]

Хорошо, но как это сделать? Есть ли примеры?


 
Zeqfreed ©   (2005-10-22 00:25) [5]

Виталий00 ©   (21.10.05 23:29) [4]
Можно использовать готовые решения, например, регулярные выражения. Или самому писать ф-цию парсинга, например, основываясь на теорию конечных автоматов или, так сказать, "в лоб" если исходные данные имеют простой формат. Опиши свою задачу более детально.


 
irishka001 ©   (2005-10-22 01:00) [6]

Пусть есть текстовый файл D:\1.txt, тогда обработчик может иметь вид:

var
f: TextFile;
fname: string;
ch: char;
str:string;
i: integer;
begin
fname:="D:\1.txt";
assignfile(f, fname);

{$I-}
reset(f);
{$I+}

while not Eof(f) do
     begin
       Readln(f, str);
       memo1.Lines.Add(copy(str,1,pos("#", str)-1));
       label1.Caption:=label1.Caption+" "+inttostr(pos(str, ","));

     end;
closefile(f)
end;


 
Германн ©   (2005-10-22 02:26) [7]

2 Виталий00 ©   (21.10.05 23:16) [2]
Могу ошибаться, но, имхо, если разделителем поставить запятую или "табуляцию", то Readln - нормально всё прочитает.


 
Anatoly Podgoretsky ©   (2005-10-22 13:17) [8]

Вот это совсем не рабочее Readln(FName, s, s1, s2, s3, s4, s5);, можно только так Readln(FName, AnsiString); и далее парсинг


 
Виталий00 ©   (2005-10-23 07:48) [9]

Спасибо всем за участие и помощь



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
4-1125746538
psa247
2005-09-03 15:22
2005.11.13
DeleteMenu


1-1130156376
fateflex
2005-10-24 16:19
2005.11.13
Инспектор


2-1129433833
intel
2005-10-16 07:37
2005.11.13
глюк формы


2-1130240207
VEZ
2005-10-25 15:36
2005.11.13
Hex SpinEdit


2-1129720063
Df23
2005-10-19 15:07
2005.11.13
Не понимаю, почему так.