[Delphi] Soubory

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod double_m 15. 3. 2007 18:12

Cus mám problém, fakt nevím proč.. :(

Kód: Vybrat vše
......

Var
F : TextFile;
.....

AssignFile(F, 'text.txt');
Rewrite(F);
WriteLn(F,Cas);

.....

- Zasekne se na ReWrite
Po zkompilování se oběví chybová hláška IO error 32 fakt už jsem googloval kde se dalo...a nic.. :(
double_m
Junior

Odeslat příspěvekod JanFiala 15. 3. 2007 19:43

Uvadis soubor bez cesty, vytvari se v pracovnim adresari programu.
Tam, kde se soubor vytvari je pravo pro zapis?
Treba ten soubor jiz existuje a nekdo jej drzi. Pak jej nemuzes vytvorit... Jde ten soubor smazat?
Co můžeš udělat dnes, odlož na včerejšek
JanFiala
Expert
Uživatelský avatar

Odeslat příspěvekod double_m 15. 3. 2007 20:10

Soubor smazat jde, klidne vytvorit i novej.. :) Právo pro zápis taky je..
double_m
Junior

Odeslat příspěvekod JanFiala 15. 3. 2007 20:11

A vis, kde se ti ten soubor vytvori?
Co můžeš udělat dnes, odlož na včerejšek
JanFiala
Expert
Uživatelský avatar

Odeslat příspěvekod double_m 15. 3. 2007 20:21

Joo hned vedle projektu a exe souboru. Píšu v Delphi 7, a teď jsem vyzkoušel i Delphi 2005 - v tom to rozchodit uplne stejnej problem.
I/O error 32
double_m
Junior

Odeslat příspěvekod hekrhy 15. 3. 2007 20:24

"32: The process cannot access the file because it is being used by another process."
opravdu ten soubor nemas v necem otevreny? nebo nevisi ti nekde ten tvuj program s tim, ze ma ten soubor jeste otevreny? nebo neotviras ho v tom programu dvakrat?
hekrhy
Junior
Uživatelský avatar

Odeslat příspěvekod double_m 15. 3. 2007 20:26

Jinak ted jsem zkusil vytvorit novej projekt dal jsem tam tohle na zacatek

Kód: Vybrat vše

procedure TForm1.FormCreate(Sender: TObject);
Var
F : TextFile;
Cas : String;
begin
           Cas := 'cas';
           AssignFile(F, 'text.txt');
           Rewrite(F);
           Write(F,Cas);
end;

end.



A soubor se v poho vytvoril bez kecu ale zase v tom souboru nebylo nic napsanyho
double_m
Junior

Odeslat příspěvekod double_m 15. 3. 2007 20:27

hekrhy píše:"32: The process cannot access the file because it is being used by another process."
opravdu ten soubor nemas v necem otevreny? nebo nevisi ti nekde ten tvuj program s tim, ze ma ten soubor jeste otevreny? nebo neotviras ho v tom programu dvakrat?


Joo tak počkej to zkouknu to je dost možný, fakt už je ten kod dlouhej.. :D
double_m
Junior

Odeslat příspěvekod neonn 15. 3. 2007 20:27

Pokud si dobre pamatuju tech par informaci o Pacalu, co nam rikali ve skole, tak rewrite() pouzit nelze :)... ten slozi pouze pro typove/netypove soubory.
Pro textove musis pouzit append() a jine (bohuzel si pamatuju pouze na append()). Ta otevre soubor pro zapis a ukazatel nastavi na konec.

Snad to je spravne... Pascal moc v oblibe nemam. Bohuzel tento pulrok zaciname brat Delphi :(... C/C++ az pristi rok :(.
Before talking crap about someone, check the room... :)
SH*T HAPPENS! :)
neonn
Junior
Uživatelský avatar

Odeslat příspěvekod hawelo 15. 3. 2007 20:28

Nemas nahodou uz niekde deklarovanu globalnu premennu F? Mal som uz podobny problem a ak sa dobre pamatam tak chyba bola v tomto. Ak nie tak skus dat presnu cestu k suboru. Ina chyba ma fakt nenapada, mozno keby si dal kod celej procedury, v ktorej sa ti to zasekava nieco by sa naslo.
hawelo
Junior

Odeslat příspěvekod double_m 15. 3. 2007 20:29

Hele tak užžž to mám... :D Připsal jsem za to CloseFile(F) a už to frčíí.. :)
double_m
Junior

Odeslat příspěvekod double_m 15. 3. 2007 20:29

Kód: Vybrat vše
......

Var
F : TextFile;
.....

AssignFile(F, 'text.txt');
Rewrite(F);
WriteLn(F,Cas);
CloseFile(F);
.....



A už to frčíí :)
double_m
Junior

Odeslat příspěvekod extremon 15. 3. 2007 20:56

Nauc se pozivat Help ... toto je zakladni pravidlo prace s files
extremon
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků