![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запись в текстовый файл длинных строк [D6, WinXP]
makey © (2005-05-31 15:53:00)Подскажите можно ли записать в текстовый файл строку из 360 символов? запись через write или WriteBuffer(Str[0], Length(Str)) рубит строку на две.
Anatoly Podgoretsky (2005-06-01 09:04:00) [1]makey © (01.06.05 05:50) [15]
Где код записи, приведенный в [0] код не рабочий.
И приведи хекс коды начиная от
Г. БАРНАУЛА**
",",656052,
evvcom (2005-06-01 08:36:00) [2]
> используя цикл for i:=1 to length(str) do write(f,str[i]);
А цикл то зачем? Всегда писал write(f,str); и не было проблем, а где надо было #13#10 вставить употреблял writeln(f [, str]); Зачем огород городить?
dmitry501 (2005-06-01 06:10:00) [3]Вот, попробовал:
procedure TForm1.Button1Click(Sender: TObject);
var
s: AnsiString;
fs: TFileStream;
begin
s := '"АНКТ",1,"01/06/2005","ТУРСУНОВ","АКРАМЖОН","АСРОРОВИЧ","М","СТАНДАРТ","11/05/1956",0,0,0,"СТАНДАРТ","САМАРКАНД","","УЗ Б ЕКИСТАН РЕСПУБЛИКА","","","ПАСПОРТ РОССИИ","ПАСПОРТ РОССИИ","01","04",576186,"24/12/2004","ТОМ ЖЕЛЕЗНОДОРОЖНОГО РАЙОНА Г. БАРНАУЛА",'+
'",656052,АЛТАЙСКИЙ КРАЙ,,БАРНАУЛ Г,,КРАСНЫЙ ТЕКСТИЛЬЩИК ПЕР,Д.91,,",",656052,АЛТАЙСКИЙ КРАЙ,,БАРНАУЛ Г,,КРАСНЫЙ ТЕКСТИЛЬЩИК ПЕР,Д.91,,",""';
fs := TFileStream.Create('test.txt', fmCreate);
try
fs.WriteBuffer(S[1], Length(S));
finally
fs.Free;
end;
end;
Все нормально, нет в выходном файле переносов...
makey (2005-06-01 05:50:00) [4]Чтобы не вызывать споров о том, какие символы стоят в строке привожу ее пример.
Это строка которую я пытаюсь записать.
"АНКТ",1,"01/06/2005","ТУРСУНОВ","АКРАМЖОН","АСРОРОВИЧ","М","СТАНДАРТ","11/05/1956",0,0,0,"СТАНДАРТ","САМАРКАНД","","УЗБ ЕКИСТАН РЕСПУБЛИКА","","","ПАСПОРТ РОССИИ","ПАСПОРТ РОССИИ","01","04",576186,"24/12/2004","ТОМ ЖЕЛЕЗНОДОРОЖНОГО РАЙОНА Г. БАРНАУЛА",",656052,АЛТАЙСКИЙ КРАЙ,,БАРНАУЛ Г,,КРАСНЫЙ ТЕКСТИЛЬЩИК ПЕР,Д.91,,",",656052,АЛТАЙСКИЙ КРАЙ,,БАРНАУЛ Г,,КРАСНЫЙ ТЕКСТИЛЬЩИК ПЕР,Д.91,,",""
А вот так она выглядит в файле (** обозначено место где появляются #13#10)
"АНКТ",1,"01/06/2005","ТУРСУНОВ","АКРАМЖОН","АСРОРОВИЧ","М","СТАНДАРТ","11/05/1956",0,0,0,"СТАНДАРТ","САМАРКАНД","","УЗБ ЕКИСТАН РЕСПУБЛИКА","","","ПАСПОРТ РОССИИ","ПАСПОРТ РОССИИ","01","04",576186,"24/12/2004","ТОМ ЖЕЛЕЗНОДОРОЖНОГО РАЙОНА Г. БАРНАУЛА**
",",656052,АЛТАЙСКИЙ КРАЙ,,БАРНАУЛ Г,,КРАСНЫЙ ТЕКСТИЛЬЩИК ПЕР,Д.91,,",",656052,АЛТАЙСКИЙ КРАЙ,,БАРНАУЛ Г,,КРАСНЫЙ ТЕКСТИЛЬЩИК ПЕР,Д.91,,",""
OSokin (2005-05-31 18:11:00) [5]ФЛУУД... Неужели нельзя просто ответить?
Нужно или через BlockWrite (поставив вторым параметром в Rewrite размер записи), - это скорее всего не прокатит, не проверял, - или записывать по одному симоволу, используя цикл for i:=1 to length(str) do write(f,str[i]);
(2005-05-31 17:23:00) [6]Удалено модератором
Alexander Panov (2005-05-31 17:19:00) [7]Poirot © (31.05.05 17:17) [11]
Да автор просто не знает, что некоторые просмотрщики переносят длинные строки
Poirot (2005-05-31 17:17:00) [8]Как то разговор от третьих лиц:)
просто уже очень интересно, а что вообще в файле? если посмотреть например его хексовым редактором - пчто есть "рубит строку на две." :)) просто, имхо, само ничего не мождет происходить:) Это в сказках только:)
Amoeba (2005-05-31 17:13:00) [9]
> Alexander Panov © (31.05.05 17:04) [8]
Sorry, недостаточно внимательно прочел 1-й пост автора вопроса. По сему и вызвал недоумение 2-й.
Anatoly Podgoretsky (2005-05-31 17:09:00) [10]Amoeba © (31.05.05 17:02) [7]
У него на это были основания, но неверные.
Alexander Panov (2005-05-31 17:04:00) [11]Amoeba © (31.05.05 17:02) [7]
В топике:
Подскажите можно ли записать в текстовый файл строку из 360 символов? запись через write или WriteBuffer(Str[0], Length(Str)) рубит строку на две.
Где здесь про опасения?
>автор
Не надо смотреть текстовый файл неправильным редактором, не поддерживающим отображение длинных строк.
Amoeba (2005-05-31 17:02:00) [12]
> Alexander Panov © (31.05.05 16:57) [6]
> Amoeba © (31.05.05 16:33) [3]
> С какой-такой сырости ему там ни с того ни с сего самому
> появиться.
> Amoeba © (31.05.05 16:45) [5]
> А кто утверждает обратное?
>
> А кто утверждает, что он там сам появлялся?
У автора того поста есть такое опасение, что перевод каретки можеть оказатьеся в строке без его ведома.
Alexander Panov (2005-05-31 16:57:00) [13]Amoeba © (31.05.05 16:33) [3]
С какой-такой сырости ему там ни с того ни с сего самому появиться.
Amoeba © (31.05.05 16:45) [5]
А кто утверждает обратное?
А кто утверждает, что он там сам появлялся?
Amoeba (2005-05-31 16:45:00) [14]
> Alexander Panov © (31.05.05 16:34) [4]
> Amoeba © (31.05.05 16:33) [3]
>
> Так содержимое длинных строк не ограничено отображаемыми
> символами.
А кто утверждает обратное?
Alexander Panov (2005-05-31 16:34:00) [15]Amoeba © (31.05.05 16:33) [3]
Так содержимое длинных строк не ограничено отображаемыми символами.
Amoeba (2005-05-31 16:33:00) [16]
> Poirot © (31.05.05 16:13) [2]
> А можно ешшо вопрос:)
> А в строке нет перевода коретки?:) #13#10?:))
С какой-такой сырости ему там ни с того ни с сего самому появиться.
Poirot (2005-05-31 16:13:00) [17]А можно ешшо вопрос:)
А в строке нет перевода коретки?:) #13#10?:))
begin...end (2005-05-31 15:58:00) [18]> makey © (31.05.05 15:53)
> можно ли записать в текстовый файл строку из 360 символов?
Можно.
> WriteBuffer(Str[0], Length(Str))
Почему 0, а не 1? И где здесь работа с текситовым файлом?
--------------------
Sorry, I'm drunk now