Вниз
Скачать: 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.008 c
1-6984
Елена
2002-05-22 15:15
2002.06.03
Модифицировать строку


1-7019
VetMIg
2002-05-08 14:45
2002.06.03
Метод


1-7111
AlexA
2002-05-22 16:18
2002.06.03
0,5=0,5 округление


14-7159
mio
2002-04-22 17:02
2002.06.03
Длина шнурков


6-7150
gdz
2002-03-25 13:09
2002.06.03
Подскажите, please!




   Наверх