Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie erstelle ich ein aktuelles Dateiverzeichnis (https://www.delphipraxis.net/94742-wie-erstelle-ich-ein-aktuelles-dateiverzeichnis.html)

Willi1960 26. Jun 2007 19:49

Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
 
hallo
ich habe das jetzt mal alles abgeändert aber es will immer noch nicht funktionieren
Delphi-Quellcode:

procedure TForm3.Button2Click(Sender: TObject);
var
   f: TextFile;
   i: integer;
begin
  {$I-}
  mkdir('c:\jowisoft');
  mkdir('c:\jowisoft\kasse');
  mkdir('c:\jowisoft\kasse\kassendaten');
  {$i+}
  if ioresult=0 then i:=i+1;  {dient einfach nur zur abfrage von ioresult}
  AssignFile (f,'c:\jowisoft\kasse\kassendaten\bondaten.txt');
  {$I-}
  Rewrite (f);
  {$I+}
  If (IOResult = 0) or (ioresult <>0) then
  begin
    Writeln (f, 'Test');
    closefile(f);
  end;
end;
[edit=MrSpock]Code Tag geschlossen. Mfg, MrSpock[/edit]

lbccaleb 26. Jun 2007 19:54

Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
 
Delphi-Quellcode:
procedure TForm3.Button2Click(Sender: TObject);
var
f: TextFile;
i: integer;
begin
{$I-}
mkdir('c:\jowisoft');
mkdir('c:\jowisoft\kasse');
mkdir('c:\jowisoft\kasse\kassendaten');
{$i+}
if ioresult=0 then i:=i+1; {dient einfach nur zur abfrage von ioresult}   //wozu das??? hat keinen sinn
AssignFile (f,'c:\jowisoft\kasse\kassendaten\bondaten.txt');
{$I-}
Rewrite (f);
{$I+}
If (IOResult = 0) or (ioresult <>0) then //was soll denn das?? wenn ioresult = 0 oder <> 0 dann mache... das blödsinn
begin
Writeln (f, 'Test');
closefile(f);
end;
end;

Willi1960 26. Jun 2007 19:57

Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
 
natürlich stelle ich das auf ioresult =0 um, aber das programm kommt ja gar nicht so weit bei rewrite steigt das programm aus b.z.w die prozedur wird nicht weiter fortgeführt

lbccaleb 26. Jun 2007 20:11

Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
 
Delphi-Quellcode:
uses
  sysutils; // <-- das muss unbedinkt oben in die uses klausel


procedure TForm3.Button2Click(Sender: TObject);
const
  thepath = 'c:\jowisoft\kasse\kassendaten\';
  thefile = 'bondaten.txt';
var
  F: TextFile;
  S: string;
begin
  if not DirectoryExists(thepath) then
    ForceDirectories(thepath);
  try
    AssignFile(F, thepath + thefile);
    Reset(F);

//reset wenn die datei "bondaten.txt" bereits vorhanden ist und rewrite wenn sie neu erstellt werden soll

    Writeln(F, 'Test');
  finally
    CloseFile(F);
  end;
end;

ansonnsten kann ich dir auch nur emfehlen hier mal ein wenig in der codelib rum zu schnüffeln oder was sowieso auch gerade in solchen fällen gut ist, mal die delphi hilfe benutzen... da steht das auch alles drin, mit bsp und quellcode

marabu 26. Jun 2007 20:23

Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
 
Hallo Willi,

wenn dein ReWrite() schon nicht ausgeführt wird, dann solltest du mal den FehlerCode anschauen. Vielleicht hast du die Datei ja zur Erfolgskontrolle in einem Editor offen, was den exklusiven Zugriff verhindert.

Statt TextFile kannst du auch problemlos mit dem moderneren FileStream arbeiten:

Delphi-Quellcode:
resourcestring
  JOWI_DIR = 'C:\JoWiSoft\Kasse\KassenDaten';
  JOWI_FILE = 'BonDaten.txt';

procedure WriteLine(s: TStream; const line: string);
begin
  s.Write(line[1], Length(line));
  s.Write(sLineBreak[1], Length(sLineBreak));
end;

procedure TDemoForm.TestButtonClick(Sender: TObject);
var
  s: TStream;
  fn: TFileName;
begin
  if not DirectoryExists(JOWI_DIR) then
    ForceDirectories(JOWI_DIR);
  fn := IncludeTrailingPathDelimiter(JOWI_DIR) + JOWI_FILE;
  s := TFileStream.Create(fn, fmCreate);
  WriteLine(s, 'success finally');
  s.Free;
end;
Getippt und nicht getestet.

Grüße vom marabu

Chemiker 26. Jun 2007 21:45

Re: Wie erstelle ich ein aktuelles Dateiverzeichnis
 
Hallo Willi1960,

wir kommen hier so nicht weiter. Beantworte erst mal folgende Fragen!

1. Delphi-Version?

Zitat:

Zitat von lbccaleb
was für ne delphi version benutzt du??

2. Welche Rechte?
Zitat:

Zitat von RavenIV
Wenn die Ordner bereits angelegt sind, vielleicht stimmen dann die Rechte nicht?
Darfst Du (Deine Software) in diese Ordner schreiben, Dateien anlegen, Dateien verändern?


3.Stehen noch Laufzeitfehler an?

Zitat:

Zitat von Hawkeye219
Der Versuch, ein bereits bestehendes Verzeichnis erneut zu erzeugen, löst einen Laufzeitfehler aus, den du durch den Compilerschalter {$i-} unterdrückst. Solange du diese Fehlercodes nicht mit IOResult abfragst, bleiben sie stehen und verhindern die Ausführung weiterer Ein-/Ausgabeoperationen.

4. Wo treten die Fehlermeldungen auf?


Zitat:

Zitat von marabu
wenn dein ReWrite() schon nicht ausgeführt wird, dann solltest du mal den FehlerCode anschauen. Vielleicht hast du die Datei ja zur Erfolgskontrolle in einem Editor offen, was den exklusiven Zugriff verhindert..


5. Welches Windows?


Bis bald Chemiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz