Главная страница
    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.07 c
4-1126266591
MF
2005-09-09 15:49
2005.11.13
Да уж... :(


3-1128082475
Top
2005-09-30 16:14
2005.11.13
(Оракля)Как организовать автоперемотку сиквенса в ADO


2-1129474903
quadronik
2005-10-16 19:01
2005.11.13
присвоение даты в maskedit.text


6-1121961178
Hkr
2005-07-21 19:52
2005.11.13
Программирование NetBIOS


14-1130020587
kaif
2005-10-23 02:36
2005.11.13
Высококачественный перевод на английский





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский