Форум: "Основная";
Текущий архив: 2003.04.21;
Скачать: [xml.tar.bz2];
ВнизКак программно создать *.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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.01 c