13.12.2006, 11:50 | #1 |
Участник
|
У меня текстовый файл, в нем много строк, но он берет только первую, как добраться до второй?
Descrip-char TFile.OPEN(FileName); TFile.TEXTMODE := FALSE; WHILE TFile.POS <>TFile.LEN DO BEGIN TFile.READ(Descrip); |
|
13.12.2006, 11:58 | #2 |
Участник
|
Надо не WHILE TFile.POS <>TFile.LEN DO BEGIN, а WHILE TFile.POS < TFile.LEN DO BEGIN. Тогда будет счастье.
и ещё TFile.TEXTMODE := TRUE; А кто-нибудь знает, как добавить символ новой строки (аналог '\n' или Environment.NewLine ), чтобы считаные из файла строки склеить в одну строку и получить тоже, что и в файле. |
|
13.12.2006, 12:34 | #3 |
Участник
|
2 yauhen: Если не ошибаюсь, символ новой строки в таблице ASCII имеет номер 10. Поэтому должно помочь завести переменную типа Char, присвоить ей значение 10 и ее прибавлять к строке.
|
|
13.12.2006, 18:26 | #4 |
Участник
|
Цитата:
CR[1] := 13; CR[2] := 10; Если переменную CR прибавлять в конец строки, то будет имитация [возврат каретки + перевод строки] |
|
15.12.2006, 13:50 | #5 |
Участник
|
Попробовал использовать CR text2, не помогает. В text box отображаются 2 квадратика вместо переврда строки. Вот используемый код:
NewLine[1] := 13; NewLine[2] := 10; f.TEXTMODE := TRUE; Text := ''; IF f.OPEN(FileName) THEN BEGIN WHILE f.POS < f.LEN DO BEGIN f.READ(Temp); IF Text = '' THEN Text := Temp ELSE Text := Text + NewLine + Temp; END; f.CLOSE(); END; EXIT(Text); Если вместо NewLine использовать '\', то происходит перевод строки первый раз, но потом просто выводится символ \. Поэтому пока использую ' '. |
|
15.12.2006, 15:10 | #6 |
Участник
|
Создай лучше InSteram и читай файл построчно.
f.TEXTMODE(TRUE); f.OPEN(Filename); f.CREATEINSTREAM(StreamInObj); i := 1; WHILE NOT (StreamInObj.EOS()) DO BEGIN StreamInObj.READTEXT(Buffer); MESSAGE('Line No. %1 %2', i , Buffer); i := i + 1; END; f.CLOSE(); |
|
15.12.2006, 16:43 | #7 |
Участник
|
Чем чтение из InStream лучше чтения прямо из файла применительно к Navision?
|
|
15.12.2006, 16:51 | #8 |
Участник
|
Тем что в данном случае можно организовать чтение файла по строкам без лишних движений. К тому же этот способ более универсальный, можно считывать файлы в BLOB поля таблицы и BLOB переменные.
|
|