Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: CL | DM;

Вниз

Как программно создать *.txt файл   Найти похожие ветки 

 
Гость   (2003-04-09 09:01) [0]

Как программно создать текстовый файл?


 
MBo ©   (2003-04-09 09:02) [1]

Assignfile
rewrite


 
Spartak ©   (2003-04-09 09:28) [2]

для особо неправельных !

кидаешь на форму memo1

далее пишешь memo1.lines.savetofile("111.txt");


 
raiv ©   (2003-04-09 09:46) [3]

AssignFile(FOut,"d:\vasiy.txt");
FileMode:=2;
Rewrite(FOut);
Writeln(FOut,"Привет");
CloseFile(FOut);


 
viman   (2003-04-09 10:18) [4]

Добавлю
var FOut:textfile;


 
Roma ©   (2003-04-09 10:30) [5]

> raiv © (09.04.03 09:46)

AssignFile(FOut,"d:\vasiy.txt");
FileMode:=2;
Rewrite(FOut);
Writeln(FOut,"Привет");
CloseFile(FOut);



А FileMode здесь на что?... Во-первых, файл тестовый, во-вторых, открывается Rewrite, а не Reset...


 
Roma ©   (2003-04-09 10:31) [6]

т.е. те кстовый...


 
Еще один способ : )   (2003-04-09 10:36) [7]

:
FileClose(FileCreate(c:\1.txt));


 
Palladin ©   (2003-04-09 10:43) [8]


> Roma © (09.04.03 10:30)

а в чем проблеммы?
1. filemode - режим работы с файлом
2. Где здесь
AssignFile(FOut,"d:\vasiy.txt");
FileMode:=2;
Rewrite(FOut);
Writeln(FOut,"Привет");
CloseFile(FOut);
ты увидел Reset?

Нормальный пример, а вот тебе бы стоило подумать прежде чем наезжать.


 
Alexandr B.   (2003-04-09 11:39) [9]

with tstringlist.create do
try
//loadfromfile("c:\test.txt");
add("+1 line");
savetofile("c:\test.txt");
fanally
free;
end;


сейчас для отладки использую вот такой код

const
dng_fn = "c:\sb_dbg.txt";

var
dbg_fs:TFileStream = nil;

Procedure Dbg(s:string);
begin
if dbg_fs = nil then exit;
s := FormatDateTime("yy,mm,dd hh,mm ",now) + s + #13#10;
dbg_fs.WriteBuffer(pointer(s)^,length(s));
end;

procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin
if not FileExists(dng_fn) then FileClose(FileCreate(dng_fn));
dbg_fs := TFileStream.Create(dng_fn,fmOpenWrite + fmShareDenyWrite);
dbg_fs.Seek(0,soFromEnd);
dbg("start");
// ...
end;

procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
// ...
dbg("stop");
dbg_fs.free; dbg_fs := nil;
end;


 
Roma ©   (2003-04-09 11:57) [10]

> Palladin © (09.04.03 10:43)

А я и не наезжаю... Посмотри исходный пример:

AssignFile(FOut,"d:\vasiy.txt");
FileMode:=2;
Rewrite(FOut);
Writeln(FOut,"Привет");
CloseFile(FOut);


и мое сообщение... Где наезд? Я не говорил, что приведенный кусок кода не работает или ошибочен, я спросил: зачем здесь FileMode?... На мой взгляд, он здесь не нужен абсолютно, и привел аргументы: 1) файл текстовый 2) файл открывается с помощью Rewrite, а не Reset. Почитай FileMode + F1, и увидишь, что и на взгляд Borland он здесь не нужен...


 
Гость   (2003-04-09 12:02) [11]

Ребята, вот хочу уточнить. В принципе метод: memo1.lines.savetofile("111.txt"); подходит, задача стоит такая - если файла (например 111.txt) не существует, то его надо создать, если при следующем открытии файл 111.txt (мы создали его при первом открытии) то создавать его ненадо, а данные из этого файла загрузить в memo1.
В строке: memo1.Lines.LoadFromFile("111.txt"); как отловить исключительную ситуацию что файла не существует и только после этого выполнить memo1.lines.savetofile("111.txt")?


 
Ariman   (2003-04-09 12:05) [12]

>> Palladin © (09.04.03 10:43)

Человек правильно наехал.

Из Delphi help"а:

FileMode variable
Indicates the access mode on typed and untyped files opened by the Reset procedure


 
DVM ©   (2003-04-09 12:07) [13]

if FileExists("111.txt") then memo1.Lines.LoadFromFile("111.txt");


 
Diouzshev ©   (2003-04-09 12:13) [14]


> Гость (09.04.03 12:02)
> Ребята, вот хочу уточнить. В принципе метод: memo1.lines.savetofile("111.txt");
> подходит, задача стоит такая - если файла (например 111.txt)
> не существует, то его надо создать, если при следующем открытии
> файл 111.txt (мы создали его при первом открытии) то создавать
> его ненадо, а данные из этого файла загрузить в memo1.
> В строке: memo1.Lines.LoadFromFile("111.txt"); как отловить
> исключительную ситуацию что файла не существует и только
> после этого выполнить memo1.lines.savetofile("111.txt")?

if FileExist(MyFileName) then
begin
Memo1.Lines.LoadFromFile(MyFileName)
end else
begin
ShowMessage("Shit happens!");
Abort;
end;



 
Алена   (2003-04-09 12:30) [15]

var
buf: TstringList;
begin
buf:=TStringList.Create;
buf.Add("Добавляем строку");
buf.SaveToFile("имя.txt");
end;


 
Palladin ©   (2003-04-09 12:31) [16]


> Roma © (09.04.03 11:57)

хм
значит я не правильно расставил запятые в твоем высказывании...
у тебя один пункт замечания, а не два...
filemode тут не причем, но он и не мешает...


 
Алена   (2003-04-09 12:33) [17]

Точнее
var
buf: TstringList;
begin
buf:=TStringList.Create;
buf.Add("Добавляем строку");
buf.SaveToFile("имя.txt");
buf.Free
end;


 
Palladin ©   (2003-04-09 12:37) [18]


> Алена (09.04.03 12:30)

эта мысль тут высказалась не один раз, со всеми уточнениями и замечаниями... да и покрасивей чем у вас
например:

with TStringList.Create do
try
Text:="Текст";
SaveToFile("c:\test.txt");
finally
Free;
end;


 
Opera ©   (2003-04-09 18:27) [19]

FileCreate("c:\1.txt");


 
NA   (2003-04-09 19:36) [20]

Ж8-)))



> Ребята, вот хочу уточнить. В принципе метод: memo1.lines.savetofile("111.txt");
> подходит, задача стоит такая - если файла (например 111.txt)
> не существует, то его надо создать, если при следующем открытии
> файл 111.txt (мы создали его при первом открытии) то создавать
> его ненадо, а данные из этого файла загрузить в memo1.



А еще такая версия ;)


AssignFile (F, FName);
try
Reset (F); CloseFile (F);
Memo1.LoadFromFile (FName);
except
MessageBox (........)
Rewrite (F); CloseFile (F)
end


:))))))

Хотя

with memo1.Lines do if FileExists("111.txt")
then LoadFromFile("111.txt")
else SaveFromFile("111.txt");


будет поизящнее. И файл создастся (пустой) - ближе к заданию.
Минусы - негибкиий контроль ошибок (try strongly recommended)


 
Баск   (2003-04-10 13:49) [21]

>Roma

"2) файл открывается с помощью Rewrite, а не Reset. "
с помощью Rewrite файл СОЗДАЁТСЯ для записи, затирая при этом существующий, а спомощью Reset - ОТКРЫВАЕТСЯ!
P.S. хотя, может, у человека плохо с английским?


 
_Nicola_   (2003-04-10 17:20) [22]

Правда, объясните зачем в этом примере FileMode:

>AssignFile(FOut,"d:\vasiy.txt");
> FileMode:=2; <<-- ???????????
> Rewrite(FOut);
> Writeln(FOut,"Привет");
>CloseFile(FOut);

Какую смысловую нагрузку он здесь несет?




 
Palladin ©   (2003-04-10 17:24) [23]

никакой...


 
NA ©   (2003-04-10 21:41) [24]

> Баск (10.04.03 13:49)

не всегда затирая существующий. Хотя к данному спору это не имеет уже никакого отношения :)))


 
Moris The Cat   (2003-04-11 00:43) [25]

вот я тет почитал почитал .... и понял, что я полный ламак! хех .... чтож ... читать читать читать!


 
CussedJohn ©   (2003-04-11 05:22) [26]

мда



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

Текущий архив: 2003.04.21;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.022 c
3-67168
Silver_
2003-04-03 10:35
2003.04.21
SQL (СУБД - Access)


14-67541
iZEN
2003-04-04 16:31
2003.04.21
В Sun считают, что .NET - это шутка


14-67453
ДедушкаКо
2003-04-05 09:57
2003.04.21
суббота


9-67072
a12321a
2002-10-25 11:25
2003.04.21
Могу писать на Delphi c OpenGL


1-67266
Crush_FM
2003-04-11 13:44
2003.04.21
Компоненты