Вниз
Скачать: CL | DM;

Проблема с выводом текста в файл   Найти похожие ветки 

 
Kordel   (2002-05-23 00:26) [0]

Эта процедура вроде как должна вывести текст в переменной 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;

Помогите. Спасибо.

ЗЫ:
Может кто-нить напишет как грамотно выводит текст в файл используя потоки?


 
VID ©   (2002-05-23 00:40) [1]

ну потоки, потоками, а можно и через AssignFile... REWRITE/APPEND сохранять..
ещё можно создать TSTRINGLIST, добавить в него t (ts.add(t)), и сохранить это добро в файл (ts.savetofile)


 
Kordel   (2002-05-23 00:50) [2]

2VID ты умный человек, но мне надо через потоки, и я не понимаю почему не пашет то, что я написал! А через файлы противоречит моему желанию, тем более, что можно через потоки.


 
Vad ©   (2002-05-23 04:03) [3]

Видима, все таки, надо добавить такую переменную:
buf:array[0..250]of char;

а потом загонять строку в нее:
StrPcopy(buf,t);

и писать уже:
outs.Write(buf, length(t));

;-)))


 
MBo ©   (2002-05-23 06:57) [4]

Уважаемый, в другой твоей ветке я уже писал, как грамотно делать

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));




 
Kordel   (2002-05-23 11:28) [5]

2МВо
Ну слава богу то, что я записал читать (пока, по крайней мере) не придется. Но почему надо именно так???


 
MBo ©   (2002-05-23 13:06) [6]

потому что t-string-ansistring является на самом деле указателем, и так outs.Write(t, length(t));
запишется не строка, а значение указателя на нее и последующий блок памяти. А вот t[1] -это адрес начала строки



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
3-6934
David Dvali
2002-05-14 16:23
2002.06.03
Retrieving BLOB data from MS SQL 2000


14-7192
UDS
2002-04-23 21:07
2002.06.03
Как сделать форму не квадратной?


14-7174
Malder
2002-04-24 23:56
2002.06.03
Где найти документацию по HTML Help WorkShop ?


1-7107
antistatic
2002-05-22 15:46
2002.06.03
Мигающий курсор в Memo1


1-7077
Bmod
2002-05-21 15:30
2002.06.03
Редактор компонента в Delphi 6...




   Наверх