![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с выводом текста в файл [D6, WinXP]
Kordel © (2002-05-23 00:26:00)Эта процедура вроде как должна вывести текст в переменной t в файл, но она выводит туда всякую чепуху хотя кол-во символов совпадает:
procedure FormatTextFile(OutputFileName: string);
var
outs: TFileStream;
t: string;
begin
t:= EmptyStr;
outs:=TFileStream.Create(OutputFileName,fmCreate);
t:="some text";
outs.Write(t, length(t));
outs.Free;
end;
Помогите. Спасибо.
ЗЫ:
Может кто-нить напишет как грамотно выводит текст в файл используя потоки?
MBo (2002-05-23 13:06:00) [1]потому что t-string-ansistring является на самом деле указателем, и так outs.Write(t, length(t));
запишется не строка, а значение указателя на нее и последующий блок памяти. А вот t[1] -это адрес начала строки
Kordel (2002-05-23 11:28:00) [2]2МВо
Ну слава богу то, что я записал читать (пока, по крайней мере) не придется. Но почему надо именно так???
MBo (2002-05-23 06:57:00) [3]Уважаемый, в другой твоей ветке я уже писал, как грамотно делать
procedure FormatTextFile(OutputFileName: string);
var
outs: TFileStream;
t: string;
begin
outs:=TFileStream.Create(OutputFileName,fmCreate);
t:="some text";
outs.Write( t[1], length(t));
outs.Free;
end;
Учти также, что для удобства чтения стоит сначала записать в поток длину строки
l:=length(t);
outs.Write(l,sixeof(l));
Vad (2002-05-23 04:03:00) [4]Видима, все таки, надо добавить такую переменную:
buf:array[0..250]of char;
а потом загонять строку в нее:
StrPcopy(buf,t);
и писать уже:
outs.Write(buf, length(t));
;-)))
Kordel (2002-05-23 00:50:00) [5]2VID ты умный человек, но мне надо через потоки, и я не понимаю почему не пашет то, что я написал! А через файлы противоречит моему желанию, тем более, что можно через потоки.
VID (2002-05-23 00:40:00) [6]ну потоки, потоками, а можно и через AssignFile... REWRITE/APPEND сохранять..
ещё можно создать TSTRINGLIST, добавить в него t (ts.add(t)), и сохранить это добро в файл (ts.savetofile)