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 Pfad in einer Configdatei immer neu setzen? (https://www.delphipraxis.net/117848-pfad-einer-configdatei-immer-neu-setzen.html)

Novo 26. Jul 2008 07:36


Pfad in einer Configdatei immer neu setzen?
 
Guten Morgen,

ich möchte aus einer Datei: MicroXP.xml
immer den Pfad ändern, von wo das Programm gerade startet.

Code:
<SharedFolders>
<SharedFolder name="SharedFolder" hostPath="H:\" writable="true"/>
</SharedFolders>
Hier das
hostPath="H:\"
immer mit
Delphi-Quellcode:
ExtractFileDrive(fullFileName))
ersetzen!

Ich könnte mit meiner
Delphi-Quellcode:
StringsucheVor(text, 'hostPath="', '"');
Das H:\ (oder Z:\ etc.) auslesen und könnte dann mit
Delphi-Quellcode:
StringReplace
ersetzen könnte...

Aber wie öffne ich die Datei jetzt und Speichere sie wieder?



Mfg Novo

new32 26. Jul 2008 09:14

Re: Pfad in einer Configdatei immer neu setzen?
 
guck mal in der Delphi-Hilfe unter AssignFile nach.
Da findest du ein Beispiel zur Dateiverwaltung.

SaFu 26. Jul 2008 09:22

Re: Pfad in einer Configdatei immer neu setzen?
 
Guck mal

Delphi-Quellcode:
Var Datei : Textfile;
.
.
.
begin
  assignfile(Datei,(ProgrammPfad + 'Config.ini'));
  rewrite(Datei);
  WriteLn(Datei,(ProgrammPfad + 'Config.ini')); // erneutes schreiben deines Pfades

  Closefile (Datei);
end;
Gruß Sascha

Novo 26. Jul 2008 10:06

Re: Pfad in einer Configdatei immer neu setzen?
 
Zitat:

Zitat von fuknersascha
Guck mal
Delphi-Quellcode:
var Datei : Textfile;

begin
  assignfile(Datei,(ProgrammPfad + 'Config.ini'));
  rewrite(Datei);
  WriteLn(Datei,(ProgrammPfad + 'Config.ini')); // erneutes schreiben deines Pfades
  Closefile (Datei);
end;
Gruß Sascha

ja supa aber wie ändere ich den Pfad dann damit?

SirThornberry 26. Jul 2008 10:51

Re: Pfad in einer Configdatei immer neu setzen?
 
Hast du dir denn die Hilfe angeschaut? Hast du da keine ähnlichen Themen gefunden? Wenn du nach AssignFile suchst wirst du sicher auch Beispiele finden welche aus Dateien lesen und welche Dateien schreiben :wink:

Wenn du nicht ausschließlich über die Windows Api das erledigen willst sondern objectorientiert könntest du auch TFileStream nehmen. Hast du bewusst in dieser Sparte gepostet oder wäre auch eine Lösung mit Nutzung der VCL ok?

Hansa 26. Jul 2008 11:10

Re: Pfad in einer Configdatei immer neu setzen?
 
fuknersascha hat fast schon alles gesagt. Ich frage mich allerdings, warum dazu überhaupt eine XML-Datei gebraucht wird. Wenn schon primitiv, dann wenigstens richtig. :mrgreen: Aber Achtung : primitiv <> dumm !! Textdatei mit einer Zeile drin würde reichen. Danach käme eine INI und dann XML.

Novo 26. Jul 2008 20:13

Re: Pfad in einer Configdatei immer neu setzen?
 
Zitat:

Zitat von Hansa
fuknersascha hat fast schon alles gesagt. Ich frage mich allerdings, warum dazu überhaupt eine XML-Datei gebraucht wird. Wenn schon primitiv, dann wenigstens richtig. :mrgreen: Aber Achtung : primitiv <> dumm !! Textdatei mit einer Zeile drin würde reichen. Danach käme eine INI und dann XML.

die xml ist normal viiieeeelll größer und ist vorgegeben!

marabu 26. Jul 2008 20:22

Re: Pfad in einer Configdatei immer neu setzen?
 
Hallo,

ich denke, dass dich ein SAX-Parser glücklich machen könnte. Bei "MicroXP" wirst du vielleicht ohne den Microsoft SAX-Parser auskommen wollen, aber laut der Beschreibung ist für "MicroXP" (nativer Parser) oder "MacroXP" (MSSAX-Wrapper) alles enthalten: SAX for Delphi (91 KB)

Grüße vom marabu

Novo 26. Jul 2008 20:38

Re: Pfad in einer Configdatei immer neu setzen?
 
Zitat:

Zitat von marabu
Hallo,

ich denke, dass dich ein SAX-Parser glücklich machen könnte. Bei "MicroXP" wirst du vielleicht ohne den Microsoft SAX-Parser auskommen wollen, aber laut der Beschreibung ist für "MicroXP" (nativer Parser) oder "MacroXP" (MSSAX-Wrapper) alles enthalten: SAX for Delphi (91 KB)

Grüße vom marabu

Ein bitte WAS?
Ich will doch bloss Datei in stream laden und an der stelle H:\ verändern

naja is eig ganz easy hab die Lösung @home (bin grad net daher frag ich)

werd dann Lösung Posten!


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

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