Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Основная";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.043 c
7-7243
VARVAR
2002-03-08 10:41
2002.06.03
Как составить список переменных в ветке реестра даже если они имеют значение


1-6994
Glonia Zbanov
2002-05-17 11:18
2002.06.03
Как передать String в DLL?


3-6919
VOVK
2002-05-14 09:44
2002.06.03
Документация по Domino Designer 5.0


14-7223
mimino
2002-04-29 09:05
2002.06.03
как?


1-7028
DenNNis
2002-05-21 14:08
2002.06.03
Копирование





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский