Форум: "Основная";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
ВнизКак всегда проблемы...... Найти похожие ветки
← →
Chlavik (2002-09-29 03:41) [0]Иногда я 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 не понимает или чёрт его знает у меня уже крыша едет. Что тут не так подскажите а тоя уже совсем осдеп.......
← →
А ты уверен (2002-09-29 03:49) [1], что "Workdir+"PwlBase.Pwb"" представляет "НОРМАЛЬНОЕ" имя файла.
Поскольку, если нет, то и "FileExists" не сработает и "ReWrite" - тоже!
← →
Chlavik (2002-09-29 03:53) [2]Так я же сказал что файл создаётся!!!!! Но там пустота!
← →
А как (2002-09-29 04:49) [3]описана переменная PwlBase?
Но стоит привести код подробнее.
← →
Chlavik (2002-09-29 05:02) [4]Вот код целой процедуры
procedure TfmMain.FormCreate(Sender: TObject);
var
cfg:file of config;
d, k:integer;
begin
ExtractFilePath(ParamStr(0));
workdir:=ExtractFilePath(ParamStr(0));
cdLetter;
BlockStatus(False);
If not FileExists("PWL Explorer.cfg") then
begin
datafile.windir[0]:="windows";
datafile.windir[1]:="win";
datafile.windir[2]:="win98";
datafile.windir[3]:="win95";
datafile.windir[4]:="winme";
datafile.windir[5]:="win9x";
datafile.windir[6]:="windows.new";
datafile.windir[7]:="winda";
datafile.windir[8]:="windows98";
datafile.windir[20]:="notfound";
for d:=9 to 19 do datafile.windir[d]:="";
exit;
end;
AssignFile(cfg,WorkDir + "PWL Explorer.cfg");
if FileSize(cfg)<>0 then
begin
Reset(cfg);
Read(cfg,datafile);
CloseFile(cfg);
DirToSave:=datafile.tosave;
PathToRepwl:=datafile.PathOfRepwl;
Checkit1:=datafile.checkit;
DateAdd1:=datafile.DateAdd;
WrtHis1:=datafile.WrtHis;
end;
// Открытие базы Pwl
If WrtHis1 Then
Begin
AssignFile(PwlBase,Workdir+"PwlBase.Pwb");
If FileExists(Workdir+"PwlBase.Pwb") then
begin
Append(PwlBase);
{ GroupBox2.Caption:="Append"};
Writeln(PwlBase,"{PWl Base File of Pwl Exlorer. For Suckers: Do not Edit!!!!!}");
end
else
begin
{ GroupBox2.Caption:="ReWrite"; }
ReWrite(PwlBase);
Writeln(PwlBase,"{!!!!!}");
k:=IOresult;
if k<>0 then Showmessage(IntToStr(k));
end;
end;
end;
Переменная PwlBase описана как глобальная PwlBase:TextFile; .....
← →
Song (2002-09-29 08:40) [5]У Вас не срабатывает
If WrtHis1 Then
А файл пустой оказывается, потому что копмилятор, исправляя Вашу оплошность сам закрывает файл, связанный с файловой переменной PwlBase. И кроме того CloseFile() я у Вас не вижу.
← →
Юрий Зотов (2002-09-29 09:26) [6]> или оно слово Rewrite не понимает
Это вряд ли
> или чёрт его знает у меня уже крыша едет.
> Что тут не так подскажите а тоя уже совсем осдеп.
Пройдите отладчиком. Сильно сберегает крышу и зрение.
← →
Chlavik (2002-09-29 14:02) [7]Я проверял отладчиком если файлп нету стрелка отладчика проходит через rewrite и writeln
Я думаю что Close File не поможет потому что этот файл открывается один раз раз как вы заметили в процудуре FormCreate
он обьявлен как глобальная переменная потму что в другой процедуре я в него собираюсь дописывать инфу я бы поместил открытие файла в ту процедуру но та процедура выполняется по Onclick и она самая "гарячая" в программе зачем мне три ста раз открывать один и тот же файл причём у величивается время выполнения той процедуры
Да кстати даже ели файл заранее был то оно всё равно туда ничего не дописывает. я этот код скопировал в отдельную новую програмку котрая состоит только из него и там он тоже н пашет! ЧТо делать?
← →
TTCustomDelphiMaster (2002-09-29 14:42) [8]А файл закрывать все таки надо.
procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(PwlBase);
end;
← →
MBo (2002-09-29 17:17) [9]Несколько удивляет, что серьезные люди дают советы мелкому хакеренку, желающему шарить по чужим компьютерам и воровать пароли ;((
← →
Cr@sh (2002-09-29 17:22) [10]2MBo
Серьезные дяди учат не воровать пароли, а всего лишь писать на Делфи. А дальше вся ответственность на "мелком хакеренке", мне так кажется...
← →
PaRL (2002-09-29 18:17) [11]
> Серьезные дяди учат не воровать пароли, а всего лишь писать
> на Делфи. А дальше вся ответственность на "мелком хакеренке",
> мне так кажется...
Я думаю, что если уж ты взялся стать мелким хакеренком, то надо идти не на этот форум, а учить или не учить - дело самих серьезных дядей.
← →
Cr@sh (2002-09-29 18:27) [12]Я не брался, я вообще доборопорядочный гражданин.
← →
PaRL (2002-09-29 18:28) [13]Я так и подумал.
← →
Chlavik (2002-09-30 13:50) [14]Мужики вы тут пришли мне совет давать или решать вопросы на щёт
"мелких хакеров". Вопервых эта програма хакерская это прога для админов сетей позволяющая "Искать и проверять дыри в сети" :-))),
как это пишут многие... Во вторых юзер "А как" поросил меня сам привести код подробнее. В трейтих я с "PaRL" полностью согласен!.
Ну так что я жду советов!!!!! Я уже триста перепроверил прогу
но ничего не могу найти...
← →
Zz_ (2002-09-30 13:56) [15]AssignFile(F,...);
Append(F);
if(IOResult<>0)then ReWrite(F);
А так не сработает ?
← →
Chlavik (2002-09-30 14:28) [16]Попробовал то же самое файл создаётся но ничего в него не пишет!!!!!! Я это сделал так:
AssignFile(PwlBase,Workdir +"PwlBase.Pwb");
Append(PwlBase);
If IOResult<>0 then
begin
ReWrite(PwlBase);
Writeln(PwlBase,"Do not Edit!!!!!");
end;
НЕ ПАШЕТ . Что это такое .........я уже не знаю
← →
han_malign (2002-09-30 16:40) [17]{$i-}...Append...IOResult...{$i+}//I/O checking кто отключать будет???
← →
MegaBass (2002-09-30 16:52) [18]после rewrite попробуй Append
← →
AlexT1000 (2002-09-30 18:15) [19]Все работает!
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;
просто закрывать файл надо после того как пописал в него
что-нибудь
← →
TTCustomDelphiMaster (2002-09-30 18:52) [20]procedure TForm1.Button1Click(Sender: TObject);
var
F: TextFile;
begin
AssignFile(F, "c:\aa.txt");
Rewrite(F);
Writeln(F, "sssssssssssssssss");
//CloseFile(F);
end;
Файл пустой?
А теперь раскоментируйте последнюю строчку.
← →
Chlavik (2002-09-30 23:01) [21]Да пашет если файл закрыть блин но мне надо туда дописывать инфу
из цикла мне что это всё в цикл втавлять? Мне важно время выполнения цикла а пока Функция FileExists проверит наличия файла
.... А что если цикл будет повторяться 100 раз
Мне нужно один раз открыть файл что бы туда постоянно дописывать
Пасиба что есть терпение отвечать на мой давным давно надоедливый всем вопрос!!
← →
Aleks1 (2002-10-01 02:59) [22]2 Chlavik © (30.09.02 23:01)
> Мне нужно один раз открыть файл что бы туда постоянно дописывать
Это можно. Можно открыть файл один раз и "регулярно" что-то туда дописывать. Но это НИ В КОЕМ СЛУЧАЕ не будет значить, что "дописки" уже сохранены вовеки!
Это будет значить только одно - пока не закроешь файл, считай что ты ничего не делал, а просто так, ворон считал.
← →
Ghg (2002-10-01 06:44) [23]узнал немного нового для себя
← →
Chlavik (2002-10-06 19:23) [24]Пасиба я радуплился... мне просто еще обьяснили что пока файл открыт некотрая инфа пишется в буфер и только тогда когда он преполнится или файл закроется только тогда в файл запишется инфа
Код работает нормально - программа пашет!
← →
drpass (2002-10-06 23:00) [25]Волшебное слово Flush(f:TextFile) позволит ускорить этот процесс, когда нужно
← →
Aleks1 (2002-10-07 04:11) [26]Сумлеваюсь я однако по поводу "Пасиба я радуплился... мне просто еще обьяснили что пока файл открыт некотрая инфа пишется в буфер и только тогда когда он преполнится или файл закроется только тогда в файл запишется инфа".
Некая инфа, чаще всего пишется не в буфер, а именно на диск. Но для нормального последующего чтения данного файла, нужно еще наличие в нужном месте полной информации о реальном размещении файла на диске и его реальном размере. А вот они уже записываются на диск (по крайней мере в ФАТ) при закрытии файла.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.008 c