Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-67437
kostya2000
2003-04-04 19:33
2003.04.21
Люди, что вы можете сказать о фирме SIS?


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


8-67405
Jacobs
2003-01-20 20:30
2003.04.21
Помогите пож. с имейджами


1-67277
Алексей Глеб
2003-04-11 11:10
2003.04.21
DLL & TFrame


14-67536
Михайлов Антон
2003-04-04 12:34
2003.04.21
---|Ветка была без названия|---





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский