Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textimport und export (https://www.delphipraxis.net/175042-textimport-und-export.html)

bennySB 27. Mai 2013 08:04

Textimport und export
 
Guten Tag alle zusammen,

ich hoffe mich absoluten Neuling kann hier einer mal am Arm packen und in die richtige Richtung werfen *gg*

Ich habe mir mit dem Programm "Inno Setup" eine *.exe erstellt welche auch tadellos funktioniert, nur noch nicht ganz fertig ist und genau der Punkt der noch offen ist ist für mich der Schwerste^^

Meine *.exe installiert ein paar Anwendungen welche nicht der Rede wert sind (keine Treibe, DLL´s, Registrierungseinträge o.ä.).
Es sind einfach nur ein paar Dateien welche in ein vom Benutzer wählbares Instalationsverzeichnis kopiert werden, zwei Dateien die nach "localappdata" kopiert werden und eine Datei die in ein zusätzlich vom Benutzer gewähltest Verzeichnis kopiert wird.
Mir geht es nun um eine *.conf Datei welche mit jedem Editor bearbeitbar ist, denn in diese müssen die vom Benutzer gewählten Pfadangaben nach dem kopieren der Datei an bestimmte Positionen eingetragen werden.

Natürlich habe ich schonmal versucht etwas selbst hin zu kriege mit FileToString als AnsiString und StringToFile, jedoch hapert es da bei mir bissl an der Erfahrung und dem Verständnis.

Nun hoffe ich das mir jemand bei meinem Vorhaben helfen kann, sollten noch Fragen jeglicher Art vorhanden sein so stürzt euch auf mich.


MfG Benny

Zur Veranschaulichung mal meinen bisherigen Code:

Delphi-Quellcode:
  var
    UserDirPage : TInputDirWizardPage;
    UserFolder : string;

    function InitializeSetup: boolean;

      begin
        UserFolder := '';
        Result := true;
      end;

    function InstallCae(Param:String):String;

      begin
        result := UserDirPage.Values[0] ;
      end;

    procedure InitializeWizard;

      begin
      UserDirPage := CreateInputDirPage(wpSelectDir,
      ExpandConstant('{cm:CAEVerzeichnis}'),
      ExpandConstant('{cm:SpeicherortPRTDEF}'),
      ExpandConstant('{cm:SpeicherzielPRTDEF}'),
      false,
      'Neuer Ordner');

      //"Klicken sie weiter..." Meldung
      UserDirPage.Add(SetupMessage(msgSelectDirBrowseLabel));

      //Standardpfad in der Verzeichnisauswahl
      UserDirPage.Values[0] := ExpandConstant(
      'C:\CAE2000\');
      end;

    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);  //Code für deinstallation

      begin
        if CurUninstallStep=usPostUninstall then

            FileCopy('{code:InstallCae}\Backup\PRTDEF.GER','{code:InstallCae}\PRTDEF.GER',false);
            DelTree('{code:InstallCae}\Backup\*', true, true, true);

      end;

baumina 27. Mai 2013 08:18

AW: Textimport und export
 
Ich weiß jetzt nicht ganz genau, ob ich dich richtig verstanden habe, wenn du diese config-Datei im Editor bearbeiten lassen magst, könntest du von Delphi aus einfach den Editor folgendermaßen aufrufen:
Delphi-Quellcode:
  ShellExecute(0, NIL, PCHAR('"NOTEPAD.EXE"'), PCHAR('"' + DATEINAME + '"'),  NIL, SW_SHOWDEFAULT);

bennySB 27. Mai 2013 08:24

AW: Textimport und export
 
Nee nee nee, sorry da hab ich mich etwas undeutlich ausgedrückt.

Das mit dem Editor habe ich nur erwähnt das ihr wisst um was es sich handelt, also das es keine HEX Werte oder sonstiges sind, sondern reiner Klartext der in der Datei vorhanden ist.

Ich möchte nun durch z.B. StringToFile erreichen das diese Pfadangaben automatisch in die *.conf Datei eingetragen werden, sodass kein Benutzer darin arbeiten muss (denn ich kenne meine Pappenheimer und weiß das viele es nicht schaffen werden, egal wie gut man es erklärt *gg*)

baumina 27. Mai 2013 08:28

AW: Textimport und export
 
OK, dann rate ich zu einer TStringList, so in der Art:

Delphi-Quellcode:
procedure Fillconf;
var
  aList : TStringList;

begin
  aList := TStringList.Create;
  aList.Add('Textzeile');
  aList.Add('noch eine Zeile');
  aList.SaveToFile('c:\temp\test.conf');
  aList.Free;
end;
EDIT: Wenn vorher schon was drin steht kannst zuvor ein aList.LoadFromFile machen.

bennySB 27. Mai 2013 08:33

AW: Textimport und export
 
Soweit ich weiß fügt diese Methode die Daten immer ans Ende der Datei mit ein oder?

Natürlich habe ich vergessen zu erwähnen das es bestimmte Positionen sind an denen die Pfadangaben eingetragen werden müssen.

Im genauen wären es:

Installationsverzeichnis der Anwendung: Zeile 299, Cursorposition 23 und Zeile 357, Cursorposition 10
Zusätzlich gewähltes Verzeichnis über function "InstallCae": Zeile 356, Cursorposition 10


Das wären die Stellen an denen es eingetragen werden muss.

baumina 27. Mai 2013 08:47

AW: Textimport und export
 
Wie gesagt mit LoadFromFile bekommst die gesamte conf-Datei erstmal in die Stringliste rein. Die StringList beginnt immer mit 0. Also aList[0] wäre dann die erste Zeile. Mithilfe der copy-Funktion kannst du dann diesen String ändern, ungefähr so:

Delphi-Quellcode:
aList[298] := copy(aList[298],1,23)+'einzufügender Text'+copy(aList[298],24,length(aList[298]));
(Hinweis: Code ungetestet)

DeddyH 27. Mai 2013 09:15

AW: Textimport und export
 
Crossposts bitte in Zukunft untereinander verlinken.

bennySB 27. Mai 2013 09:17

AW: Textimport und export
 
Ahh okay sorry das wusste ich noch nicht das dies so zusammen gehört, mein Fehler.

bennySB 27. Mai 2013 09:38

AW: Textimport und export
 
Hmmm ich habe nun einmal folgenden Code eingebaut

Delphi-Quellcode:
    procedure AfterInstallConf();
   
    var

    aList : TStringList;

    begin
      aList.LoadFromFile('C:\Users\BWolonkieiwicz\AppData\Local\DOSBox\dosbox-SVN_MB6.conf');
      aList := TStringList.Create;
      aList[361] := copy(aList[361],1,1)+'Hallo'+copy(aList[361],24,length(aList[361]));
      aList.SaveToFile('C:\Users\BWolonkieiwicz\AppData\Local\DOSBox\dosbox-SVN_MB6.conf');
      aList.Free;
    end;
Jedoch finde ich nach dem durchführen der *.exe keinen Eintrag "Hallo" bzw. es ändert sich nichts.

baumina 27. Mai 2013 09:39

AW: Textimport und export
 
Ein LoadFromFile kann erst funktionieren, wenn die TStringListe zuvor erzeugt(Create) wurde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 Uhr.
Seite 1 von 6  1 23     Letzte »    

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