![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как всегда проблемы......
Chlavik © (2002-09-29 03:41:00)Иногда я Delphi совсем не понимаю
Смотрите
If WrtHis1 Then
Begin
AssignFile(PwlBase,Workdir+"PwlBase.Pwb");
If FileExists(Workdir+"PwlBase.Pwb") then
begin
Append(PwlBase);
end
else
begin
ReWrite(PwlBase);
Writeln(PwlBase,"xxxxx");
k:=IOresult;
if k<>0 then Showmessage(IntToStr(k));
У меня этого файла нету...
Так вот выдаёт 103 - File not Open
Так самое главное что файл создаёт а туда ничего не пишет!
Я не понял что за прикол или оно слово Rewrite не понимает или чёрт его знает у меня уже крыша едет. Что тут не так подскажите а тоя уже совсем осдеп.......
Aleks1 (2002-10-07 04:11:00) [1]Сумлеваюсь я однако по поводу "Пасиба я радуплился... мне просто еще обьяснили что пока файл открыт некотрая инфа пишется в буфер и только тогда когда он преполнится или файл закроется только тогда в файл запишется инфа".
Некая инфа, чаще всего пишется не в буфер, а именно на диск. Но для нормального последующего чтения данного файла, нужно еще наличие в нужном месте полной информации о реальном размещении файла на диске и его реальном размере. А вот они уже записываются на диск (по крайней мере в ФАТ) при закрытии файла.
drpass (2002-10-06 23:00:00) [2]Волшебное слово Flush(f:TextFile) позволит ускорить этот процесс, когда нужно
Chlavik (2002-10-06 19:23:00) [3]Пасиба я радуплился... мне просто еще обьяснили что пока файл открыт некотрая инфа пишется в буфер и только тогда когда он преполнится или файл закроется только тогда в файл запишется инфа
Код работает нормально - программа пашет!
Ghg (2002-10-01 06:44:00) [4]узнал немного нового для себя
Aleks1 (2002-10-01 02:59:00) [5]2 Chlavik © (30.09.02 23:01)
> Мне нужно один раз открыть файл что бы туда постоянно дописывать
Это можно. Можно открыть файл один раз и "регулярно" что-то туда дописывать. Но это НИ В КОЕМ СЛУЧАЕ не будет значить, что "дописки" уже сохранены вовеки!
Это будет значить только одно - пока не закроешь файл, считай что ты ничего не делал, а просто так, ворон считал.
Chlavik (2002-09-30 23:01:00) [6]Да пашет если файл закрыть блин но мне надо туда дописывать инфу
из цикла мне что это всё в цикл втавлять? Мне важно время выполнения цикла а пока Функция FileExists проверит наличия файла
.... А что если цикл будет повторяться 100 раз
Мне нужно один раз открыть файл что бы туда постоянно дописывать
Пасиба что есть терпение отвечать на мой давным давно надоедливый всем вопрос!!
TTCustomDelphiMaster (2002-09-30 18:52:00) [7]procedure TForm1.Button1Click(Sender: TObject);
var
F: TextFile;
begin
AssignFile(F, "c:\aa.txt");
Rewrite(F);
Writeln(F, "sssssssssssssssss");
//CloseFile(F);
end;
Файл пустой?
А теперь раскоментируйте последнюю строчку.
AlexT1000 (2002-09-30 18:15:00) [8]Все работает!
procedure TForm1.BitBtn1Click(Sender: TObject);
Var Workdir : string; k : integer;
s :string;
PwlBase : TextFile;
begin
Workdir := ExtractFilePath(ParamStr(0));
s := Workdir+"PwlBase.Pwb";
AssignFile(PwlBase,s);
If FileExists(s) then
begin
Append(PwlBase);
Writeln(PwlBase,"xxxsdfxx");
end
else
begin
ReWrite(PwlBase);
Writeln(PwlBase,"xxxxx");
k:=IOresult;
if k<>0 then Showmessage(IntToStr(k));
end;
CloseFile(PwlBase); ///!!!!!!!!!!!!!!!!
end;
просто закрывать файл надо после того как пописал в него
что-нибудь
MegaBass (2002-09-30 16:52:00) [9]после rewrite попробуй Append
han_malign (2002-09-30 16:40:00) [10]{$i-}...Append...IOResult...{$i+}//I/O checking кто отключать будет???
Chlavik (2002-09-30 14:28:00) [11]Попробовал то же самое файл создаётся но ничего в него не пишет!!!!!! Я это сделал так:
AssignFile(PwlBase,Workdir +"PwlBase.Pwb");
Append(PwlBase);
If IOResult<>0 then
begin
ReWrite(PwlBase);
Writeln(PwlBase,"Do not Edit!!!!!");
end;
НЕ ПАШЕТ . Что это такое .........я уже не знаю
Zz_ (2002-09-30 13:56:00) [12]AssignFile(F,...);
Append(F);
if(IOResult<>0)then ReWrite(F);
А так не сработает ?
Chlavik (2002-09-30 13:50:00) [13]Мужики вы тут пришли мне совет давать или решать вопросы на щёт
"мелких хакеров". Вопервых эта програма хакерская это прога для админов сетей позволяющая "Искать и проверять дыри в сети" :-))),
как это пишут многие... Во вторых юзер "А как" поросил меня сам привести код подробнее. В трейтих я с "PaRL" полностью согласен!.
Ну так что я жду советов!!!!! Я уже триста перепроверил прогу
но ничего не могу найти...
PaRL (2002-09-29 18:28:00) [14]Я так и подумал.
Cr@sh (2002-09-29 18:27:00) [15]Я не брался, я вообще доборопорядочный гражданин.
PaRL (2002-09-29 18:17:00) [16]
> Серьезные дяди учат не воровать пароли, а всего лишь писать
> на Делфи. А дальше вся ответственность на "мелком хакеренке",
> мне так кажется...
Я думаю, что если уж ты взялся стать мелким хакеренком, то надо идти не на этот форум, а учить или не учить - дело самих серьезных дядей.
Cr@sh (2002-09-29 17:22:00) [17]2MBo
Серьезные дяди учат не воровать пароли, а всего лишь писать на Делфи. А дальше вся ответственность на "мелком хакеренке", мне так кажется...
MBo (2002-09-29 17:17:00) [18]Несколько удивляет, что серьезные люди дают советы мелкому хакеренку, желающему шарить по чужим компьютерам и воровать пароли ;((
TTCustomDelphiMaster (2002-09-29 14:42:00) [19]А файл закрывать все таки надо.
procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(PwlBase);
end;
Chlavik (2002-09-29 14:02:00) [20]Я проверял отладчиком если файлп нету стрелка отладчика проходит через rewrite и writeln
Я думаю что Close File не поможет потому что этот файл открывается один раз раз как вы заметили в процудуре FormCreate
он обьявлен как глобальная переменная потму что в другой процедуре я в него собираюсь дописывать инфу я бы поместил открытие файла в ту процедуру но та процедура выполняется по Onclick и она самая "гарячая" в программе зачем мне три ста раз открывать один и тот же файл причём у величивается время выполнения той процедуры
Да кстати даже ели файл заранее был то оно всё равно туда ничего не дописывает. я этот код скопировал в отдельную новую програмку котрая состоит только из него и там он тоже н пашет! ЧТо делать?