Delphi-PRAXiS
Seite 2 von 6     12 34     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)

DeddyH 27. Mai 2013 09:40

AW: Textimport und export
 
Du kannst die Liste ja nicht laden, wenn Du sie im Anschluss erst erzeugst. Außerdem solltest Du vor einem indizierten Zugriff auf eine Zeile sicherstellen, dass auch entsprechend viele Zeilen vorhanden sind.

CarlAshnikov 27. Mai 2013 10:07

AW: Textimport und export
 
Mir ist hier noch was aufgefallen:
Delphi-Quellcode:
   
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;
Fehlt hier irgendwie ein begin end hinter dem if oder ist die Einrückung nur Mist? :-D

p80286 27. Mai 2013 10:25

AW: Textimport und export
 
Zitat:

Zitat von bennySB (Beitrag 1216505)
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.

Solltest Du wirklich obigen Code compillert haben, solltest Du eigentlich mit einem Zugriffsfehler "belohnt" werden. Alleine dies Tatsache sollte Dich stutzig gemacht haben.

Deine Voraussetzung, die CONF-Datei mit einem beliebigen Editor bearbeiten zu wollen und gleichzeitig eine Adressierung nach Zeile und Position in der Zeile ist zumindestens gefährlich, da viele Editoren Leerzeichen durch Tabulatoren ersetzen und Du damit einen Unterschied zwischen der Angezeigten und der "zeichengezählten" Position erhälst.

Gruß
K-H

user0815 27. Mai 2013 10:28

AW: Textimport und export
 
Wär das mit einer INI nicht leichter ?
Evtl. einfach in die erste Zeile der *.conf irgendwas mit [eckigen Klammern] einfügen und dann die Einträge setzen a la:

http://www.jrsoftware.org/ishelp/ind...pic=inisection

bennySB 27. Mai 2013 10:28

AW: Textimport und export
 
Zitat:

Zitat von DeddyH (Beitrag 1216507)
Du kannst die Liste ja nicht laden, wenn Du sie im Anschluss erst erzeugst. Außerdem solltest Du vor einem indizierten Zugriff auf eine Zeile sicherstellen, dass auch entsprechend viele Zeilen vorhanden sind.

Die Datei existiert bei mir auf dem Rechner zum testen bereits, von der Vorgehensweise am Ende ist es ja so das die Datei mit der Setup Routine kopiert wird und dann die Einträge gemacht werden sollen.

Zitat:

Zitat von CarlAshnikov (Beitrag 1216512)
Mir ist hier noch was aufgefallen:
Delphi-Quellcode:
   
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;
Fehlt hier irgendwie ein begin end hinter dem if oder ist die Einrückung nur Mist? :-D

Da ist die Einrückung vielleicht nur Mist^^ Aber die procedure Funktioniert so einwandfrei^^

bennySB 27. Mai 2013 10:39

AW: Textimport und export
 
So also an sich sage ich nun einmal das wir den Begriff "Editor" hieraus verbannen^^
Kein Editor hat etwas mit der Installation oder sonstigem zu tun, nur der Code soll auf die *.conf Datei zugreifen welcher nach der Installation eingreifen soll.


Ich habe mir den Code nun einmal so abgeändert das er erst am Ende des Setups´s ausgeführt wird und zum testen wollte ich nun einmal einfach nur eine Zeile einfügen (egal wo), jedoch macht er nicht einmal das.
Liegt es nun daran das er die Datei nicht öffnen kann oder nicht in ihr schreiben kann?

Delphi-Quellcode:
    procedure AfterInstallConf(CurStep: TSetupStep);

    var
      DOSBoxConf : TStringList;

    begin
        if CurStep=ssPostInstall then

          DOSBoxConf := TStringList.Create;
          DOSBoxConf.LoadFromFile('C:\Users\BWolonkieiwicz\AppData\Local\DOSBox\dosbox-SVN_MB6.conf');
          DOSBoxConf.Add('Hallo');
          DOSBoxConf.SaveToFile('C:\Users\BWolonkieiwicz\AppData\Local\DOSBox\dosbox-SVN_MB6.conf');
          DOSBoxConf.Free;
    end;

Edit:
Die Pfadangabe "C:\Users\BWolonkieiwicz\AppData\Local" wird später auch durch "{localappdata}" getauscht, nur zum Testen bleibt nun erstmal der komplette Pfad drin.

baumina 27. Mai 2013 10:44

AW: Textimport und export
 
Das ist wieder das mit der Einrückung und dem fehlenden begin/end, eine Einrückung alleine reicht da nicht.

Delphi-Quellcode:
    procedure AfterInstallConf(CurStep: TSetupStep);

    var
      DOSBoxConf : TStringList;

    begin
        if CurStep=ssPostInstall then
        begin
          DOSBoxConf := TStringList.Create;
          DOSBoxConf.LoadFromFile('C:\Users\BWolonkieiwicz\AppData\Local\DOSBox\dosbox-SVN_MB6.conf');
          DOSBoxConf.Add('Hallo');
          DOSBoxConf.SaveToFile('C:\Users\BWolonkieiwicz\AppData\Local\DOSBox\dosbox-SVN_MB6.conf');
          DOSBoxConf.Free;
        end;
    end;

DeddyH 27. Mai 2013 10:45

AW: Textimport und export
 
Wird diese conf nur von Deinem Programm benutzt, oder ist sie für Inno oder andere Programme relevant? Falls nur Du sie benötigst, solltest Du Dir den gennanten Vorschlag, TIniFile zu benutzen, einmal durch den Kopf gehen lassen.

bennySB 27. Mai 2013 11:04

AW: Textimport und export
 
Bevor es weiter geht erst einmal einen riesen Dank an euch, endlich komme ich mal weiter hier^^

Nun wieder ans eingemachte:

Ich schaffe es nun mit der richtigen Syntax (begin und end) die Datei zu beschreiben und das auch an den richtigen Positionen, nur leider kriege ich dort nur einen statischen Text rein und nicht meine Pfadangabe.

Ich habe es mit folgendem Versucht:

Delphi-Quellcode:
    procedure CurStepChanged(CurStep: TSetupStep);

    var
      DOSBoxConf : TStringList;

    begin
        if CurStep=ssPostInstall then
          begin;
          DOSBoxConf := TStringList.Create;
          DOSBoxConf.LoadFromFile('{localappdata}\DOSBox\dosbox-SVN_MB6.conf');
          DOSBoxConf[355] := copy(DOSBoxConf[355],1,9)+'{code:InstallCae}'+copy(DOSBoxConf[355],24,length(DOSBoxConf[355]));      
          DOSBoxConf.SaveToFile('{localappdata}\DOSBox\dosbox-SVN_MB6.conf');
          DOSBoxConf.Free;
          end;
    end;
Jedoch schreibt er mir dann auch nur "{code:InstallCae}" als Text in meine Datei und nicht z.B. "D:\CAE2000\"
zudem kommt er auch nicht mit der Variable "{localappdata}" zurecht, solltet ihr da vielleicht einen Tipp haben?^^
Wenn nicht dann muss ich wohl zusätzlich einen Code einbauen in dem das Verzeichnis ermittelt wird oder?

DeddyH 27. Mai 2013 11:09

AW: Textimport und export
 
Zitat:

Zitat von bennySB (Beitrag 1216528)
Wenn nicht dann muss ich wohl zusätzlich einen Code einbauen in dem das Verzeichnis ermittelt wird oder?

Darauf wird es hinauslaufen. Woher soll denn der Compiler wissen, dass er da einen Platzhalter parsen soll? Für ihn ist ein String ein String, egal was da drin steht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr.
Seite 2 von 6     12 34     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