Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wie beeinflusse ich WO eine Datei per Assign() erzeugt wird? (https://www.delphipraxis.net/8589-wie-beeinflusse-ich-wo-eine-datei-per-assign-erzeugt-wird.html)

Rapthor 8. Sep 2003 15:26


Wie beeinflusse ich WO eine Datei per Assign() erzeugt wird?
 
Hallo ...
mein Code lautet wie folgt

Delphi-Quellcode:
     
SetCurrentDir(Edit2.Text + '\' + tempdir + '\' + Kuerzel.Text);
AssignFile(sinfo,'Shardinfo.ini');
ReWrite(sinfo);
CloseFile(sinfo);
Aber anstatt die Datei wie angegeben in CurrentDir abzulegen, legt er sie im Edit2.Text - Verzeichnis ab ... also einige Ordner weiter vorne.
Was mach ich falsch ?

sakura 8. Sep 2003 15:28

Re: Wie beeinflusse ich WO eine Datei per Assign() erzeugt w
 
Lass Dir mal den Wert von Edit2.Text + '\' + tempdir + '\' + Kuerzel.Text anzeigen.

Ausserdem teste mal folgenden Code:
Delphi-Quellcode:
if not DirectoryExists(Edit2.Text + '\' + tempdir + '\' + Kuerzel.Text) then
  raise Exception.Create('Verzeichnis existiert nicht!');
SetCurrentDir(Edit2.Text + '\' + tempdir + '\' + Kuerzel.Text);
AssignFile(sinfo,'Shardinfo.ini');
ReWrite(sinfo);
CloseFile(sinfo);
...:cat:...

Luckie 8. Sep 2003 15:33

Re: Wie beeinflusse ich WO eine Datei per Assign() erzeugt w
 
Warum überhaupt das aktuelle Verzeichnis setzen, wenn der Pfad eh im Edit drinsteht?

Wormid 8. Sep 2003 15:34

Re: Wie beeinflusse ich WO eine Datei per Assign() erzeugt w
 
Wie wäre es damit, einfach AssignFile mit nem kompletten Pfad aufzurufen?

Delphi-Quellcode:
AssignFile(F, 'C:\Programme\Blablubb\test.dat');
Gruß

Wormid

Rapthor 8. Sep 2003 15:36

Re: Wie beeinflusse ich WO eine Datei per Assign() erzeugt w
 
OK Problem gelöst ....
Voll doof dass in dem Fall kein Verzeichnis akzeptiert wird im Format xxxxxxxx.xxx also in meinem Fall war es "Startrampe.tmp"
Obwohl ich sonst im Laufe der Zeit noch keinerlei Probs mit dem Punkt im Verzeichnis hatte.

Rapthor 8. Sep 2003 15:46

Re: Wie beeinflusse ich WO eine Datei per Assign() erzeugt w
 
Neues Problem:

Ich habe die Datei jetzt erstellt und auch einen Eintrag eingefügt.
Nach dem ersten Mal kein Problem aber wie trage ich jetzt noch mehr Zeilen ein? Mit ReWrite erzeugt er ja immer nur eine völlig neue Datei.

Quelltext:

Delphi-Quellcode:
      AssignFile(sinfo,'Shardinfo.ini');
      Reset(sinfo);         { geht das damit ???}
      while not eof(sinfo) do ReadLn;
      Append(multi_mul);    { Append richtig ??? }
      CloseFile(sinfo);
Bei multi_mul handelt es sich um den Bezeichner einer String KONSTANTEN.

Rapthor 8. Sep 2003 16:09

Re: Wie beeinflusse ich WO eine Datei per Assign() erzeugt w
 
GELÖST ! Danke trotzdem :lol:

Wormid 8. Sep 2003 16:13

Re: Wie beeinflusse ich WO eine Datei per Assign() erzeugt w
 
Append öffnet eine Datei und setzt den Zeiger ans Ende der Datei...

Delphi-Quellcode:
AssignFile(F, 'datei.txt');
Append(F);
WriteLn(F, 'Angehängte Zeile...');
CloseFile(F);
WriteLn schreibt den Text ans Ende der Date (hängt ihn also an).
Rewrite erzeugt eine neue, leere Datei.
Mit Reset öffnest Du eine Bestehende Datei, und der Dateizeiger bleibt am Beginn stehen.

Um das ganze mit Reset zu lösen, sähe das ungefähr so aus:

Delphi-Quellcode:
AssignFile(F, 'datei.txt');
Reset(F);
Seek(F, FileSize(F));
WriteLn(F, 'Angehängte Zeile...');
CloseFile(F);

Gruß

Wormid


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr.

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