Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
Виталий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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.041 c
1-1129822852
CaptainAlex
2005-10-20 19:40
2005.11.13
Обработчик события указывает на "псевдометод"


1-1129910104
jiurasdfsdfs
2005-10-21 19:55
2005.11.13
Tms Adv Grid - как сделать суммрование и...?


9-1119898434
Felicheta
2005-06-27 22:53
2005.11.13
гром и молния


14-1129899414
ilya39
2005-10-21 16:56
2005.11.13
сайт по ASP.NET


14-1129738743
ioas
2005-10-19 20:19
2005.11.13
вопрос по Apache





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский