Delphi-PRAXiS
Seite 1 von 2  1 2      

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.

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.

bennySB 27. Mai 2013 11:15

AW: Textimport und export
 
juhuuu das freut mich ja........nicht *gg*

Und das nur weil man immer nach dem DAU ausgeht (Dümmster anzunehmender User)^^

Na dann werde ich mich mal umschauen nach ner Syntax fürs auslesen des Verzeichnisses oder hat einer gerade was parat?

baumina 27. Mai 2013 11:43

AW: Textimport und export
 
Also ich kenn das Inno nicht aber wenn ich so deinen Code lese, müsste nicht ExpandConstant('{cm:CAEVerzeichnis}') das richtige machen?

bennySB 27. Mai 2013 12:20

AW: Textimport und export
 
Zitat:

Zitat von baumina (Beitrag 1216542)
Also ich kenn das Inno nicht aber wenn ich so deinen Code lese, müsste nicht ExpandConstant('{cm:CAEVerzeichnis}') das richtige machen?

Heilige schei.... danke für den Tipp^^ jetzt habe ich es endlich, du hast mich auf die richtige Idee gebracht.
Zu deiner Info "{cm:CAEVerzeichnis}" ist in dem Fall falsch, denn cm steht für CustomMessage und das ist nur der Text der im Setup auf einer jeweiligen Seite angezeigt wird, aber folgendes ist nun das richtig eErgebnis:

Delphi-Quellcode:
    procedure CurStepChanged(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[298] := copy(DOSBoxConf[298],1,22)+(ExpandConstant('{app}\PrintOut\SELECT.PCL'))+copy(DOSBoxConf[298],24,length(DOSBoxConf[298]));
          DOSBoxConf[355] := copy(DOSBoxConf[355],1,9)+(ExpandConstant('{code:InstallCae}\'))+copy(DOSBoxConf[355],24,length(DOSBoxConf[355]));
          DOSBoxConf[356] := copy(DOSBoxConf[356],1,9)+(ExpandConstant('{app}\'))+copy(DOSBoxConf[356],24,length(DOSBoxConf[356]));      
          DOSBoxConf.SaveToFile('C:\Users\BWolonkieiwicz\AppData\Local\DOSBox\dosbox-SVN_MB6.conf');
          DOSBoxConf.Free;
          end;
    end;
So trägt er alle so ein wie es sein soll.

Nur hat sich jetzt ein neues Problem gezeigt welches auf Basis des Betriebssystems geht, je nach Sprache etc.

Mein Programm welches ich installiere schaut auf der Festplatte nach wie ein Ordner heißt, in diesem Fall "C:\Programme\...." jedoch schreibt mir der Code nun in meine *.conf Datei durch die Anweisung "{app}" (welche ja das Installationsverzeichnis ist) folgendes: "C:\Program Files\....."

Irgendwie muss ich es nun hinkriegen das Inno Setup bzw. der Code zwangsweise Programme schreibt.

hat da einer nen Tipp für mich oder ist es nun so weit einen Code zu schreiben der das Verzeichnis erkennt und dahin hoffentlich Programme nimmt?

baumina 27. Mai 2013 12:26

AW: Textimport und export
 
Soviel ich weiß, ist das im Explorer angezeigte "c:\Programme" nur ein Link auf "c:\Program Files", was heißen soll, dass beides gehen müsste.

bennySB 27. Mai 2013 12:35

AW: Textimport und export
 
Dachte ich auch, aber irgendwie will es trotzdem nicht gehen.
Ich muss mal schauen wie ich im Inno Setup das vielleicht anpassen kann, da kann man allgemein ein wenig arbeiten mit diesen beiden Befehlen:

Delphi-Quellcode:
LanguageDetectionMethod=uilanguage
PrivilegesRequired=none

baumina 27. Mai 2013 12:40

AW: Textimport und export
 
Ich tippe eher auf das Leerzeichen-Problem, ich weiß ja nicht wie deine config-Datei den Pfad rausliest aber evtl. reicht ja ein Setzen von Anführungszeichen drumrum (z.B. "c:\Program Files\test\Dateiname.txt").

bennySB 28. Mai 2013 07:08

AW: Textimport und export
 
Da mein Rechner gerade irgendwie etwas spinnt und ich kaum noch ne Anwendung aufkriege und somit nicht mehr viel testen kann wird sich die Sache etwas nach hinten verschieben^^
In der Zeit werde ich halt schonmal das nächste Realisieren das ich ne CheckBox einfüge und wenn diese =true ist soll noch ne zusätzliche Verzeichnisauswahl aufploppen, somit bin ich noch beschäftigt^^

Perlsau 28. Mai 2013 08:03

AW: Textimport und export
 
Da würd' ich aber erstmal den Rechner wieder flott machen, bevor ich weiter programmiere ... Wie willst du programmieren, wenn du, wie du sagt, kaum noch eine Anwendung öffnen kannst?

bennySB 28. Mai 2013 08:13

AW: Textimport und export
 
Ach es geht schon halbwegs^^ Compalieren und die *.exe starten geht noch. Ich kann nur mein installiertes Programm nicht starten aber das ist momentan auch gar nicht so wichtig^^

Aber wo ich gerade mal dabei bin hier zu schreiben, vielleicht könnte ihr mir nen gedanklichen Anstoß geben.
Ich habe auf einer WizardPage nun eine zusätzliche Verzeichnisauswahl eingefügt und eine CheckBox, nun will ich beides miteinander Verbinden.
Soll heißen: CheckBox aktiviert: 2.Verzeichnisauswahl einblenden, Checkbox nicht aktiviert: 2. Verzeichnisauwahl ausblenden.

Die erste Verzeichnisauswahl bleibt unangetastet. Anbei mein momentaner Code dafür:

Delphi-Quellcode:
var

    UserDirPageCAE : TInputDirWizardPage;  
    UserFolderCAE, UserFolderGPS : string;
    GPSVerzeichnisVisible : boolean;
    DOSBoxConf : TStringList;
    GPSDirCheckBox: TNewCheckBox;



    function InitializeSetup: boolean;

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

    function InstallCae(Param:String):String;

      begin
        Result := UserDirPageCAE.Values[0];
      end;

    function GPSDir(Param:String):String;

      begin
        Result := UserDirPageCAE.Values[1];
      end;

    procedure InitializeWizard;

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


      //CAE-Verzeichnisauswahlfenster
      UserDirPageCAE.Add('CAE2000.EXE Verzeichnis');
      //GPS-Verzeichnisauswahlfenster
      UserDirPageCAE.Add('GPS-Ordner Verzeichnis');


      //CAE-Standardpfad in der Verzeichnisauswahl
      UserDirPageCAE.Values[0] := ExpandConstant(
      'C:\CAE2000\');
     
      //GPS-Standardpfad in der Verzeichnisauswahl
      UserDirPageCAE.Values[1] := ExpandConstant(
      'C:\');
     
      GPSDirCheckBox := TNewCheckBox.Create(UserDirPageCAE);
     
      with GPSDirCheckBox do     //Parameter für die GPS-CheckBox
        begin
       
          GPSDirCheckBox.Parent := UserDirPageCAE.Surface;
          Caption := ExpandConstant('{cm:GPSVerzeichnis}');
          Left := ScaleX(0);
          Top := ScaleY(120);
          Width := ScaleX(400);
          Height := ScaleY(40);
          Checked := GPSVerzeichnisVisible;
          Visible := true;
        end;
      end;

bennySB 28. Mai 2013 08:41

AW: Textimport und export
 
Meine Überlegung jetzt war gerade es so zu realisieren

Delphi-Quellcode:
      begin
      if GPSVerzeichnisVisible=true then
       
        begin
         
          //GPS-Verzeichnisauswahlfenster
          UserDirPageCAE.Add('GPS-Ordner Verzeichnis');
         
          //GPS-Standardpfad in der Verzeichnisauswahl
          UserDirPageCAE.Values[1] := ExpandConstant(
          'C:\');
        end;
      end;
Jedoch kann ich mit dem ändern von true zu false die Verzeichnisauswahl nur ein oder ausblenden beim ersten starten.
Jedoch wird das Fenster nicht ein oder ausgeblendet wenn ich im Setup die Checkbox betätige.

Hmm wie kann ich das dynamisch machen oder sollte dazu lieber einen extra Post eröffnen?

Sir Rufo 28. Mai 2013 09:09

AW: Textimport und export
 
Also wenn deine Konfigurationsdatei die ist, die hier beschrieben ist, dann ist das eine INI-Datei (ja, auch wenn die Erweiterung nicht .ini ist).

Somit ist dein (entschuldige bitte) "Gehampel" einfach nur zum Schreien.

Der Hinweis zum Thema INI-Datei ist hier auch schon gefallen, aber du hast darauf nicht wirklich reagiert.
Warum du die conf-Datei nicht angehängt hast, bleibt auch ein Rätsel, denn damit wäre die Diskussion nach 3 Beiträgen durch gewesen :roll:

bennySB 28. Mai 2013 09:20

AW: Textimport und export
 
Liste der Anhänge anzeigen (Anzahl: 1)
Naja die Funktion "INI" habe ich mir schon angeschaut, nur ist dort das Problem das die Zuweisung von Key zu String immer mit einem "=" verbunden wird und solange dieses nicht zu entfernen ist kann ich diese Lösung nicht nutzen, zudem habe ich ja auch eine Funktionierende Variante mit der Hilfe hier nun erstellt^^

Aber ich kann auch gerne die *.conf Datei mal eben anhängen. (nicht wundern ich habe sie nur zum Hochladen in eine *.txt abgeändert)

baumina 28. Mai 2013 09:24

AW: Textimport und export
 
Zitat:

Zitat von bennySB (Beitrag 1216663)
in die richtige Richtung werfen ... gedanklichen Anstoß geben ...

Ich habe eher den Eindruck, dass wir dir hier ständig einen fertigen Code präsentieren sollen. Ein letzter Gedankenanstoß wäre : Ereignis onClick

Und das "=" in einer ini ist einfach durch Values und Names zu trennen.

Edit: bzw. ist ein readstring/writestring

DeddyH 28. Mai 2013 09:26

AW: Textimport und export
 
Sir Rufo hat Recht, das ist das ganz normale Ini-Format.
Code:
[Abschnitt]
Schlüssel=Wert
Mit TIniFile würde man das so anlegen können:
Delphi-Quellcode:
IniVariable.WriteString('Abschnitt', 'Schlüssel', 'Wert');
Und fertig ist der Lack.

bennySB 28. Mai 2013 09:32

AW: Textimport und export
 
Naja aber wie gesagt mit baumina´s Hilfe läuft es ja jetzt auch und sorry wenn es so rüber kommt als wolle ich fertige Lösungen haben das soll natürlich nicht so sein.
Mit der onClick Sache das werde ich mir mal nun noch anschauen. Ich hatte wirklich gedacht das man die Checked Variable nehmen kann da diese ja ein boolean ist und man somit ne einfache true, false Abfrage starten könnte, aber das dies nicht dynamisch zu sein scheint bleibt nun halt die onClick Sache noch übrig^^

Ps. Ich will hier niemanden irgendwie verärgern oder so, bin nur halt noch im Larvenstadium was Delphi angeht^^

DeddyH 28. Mai 2013 09:35

AW: Textimport und export
 
Zitat:

Zitat von bennySB (Beitrag 1216683)
Naja aber wie gesagt mit baumina´s Hilfe läuft es ja jetzt auch

Du greifst aber immer noch auf Zeilen über ihren Index zu, oder? Wenn man also mal eine Zeile hinzufügt, passt das alles nicht mehr zusammen.

bennySB 28. Mai 2013 09:40

AW: Textimport und export
 
Gut da hast du wohl recht, da wäre eine Suche nach der jeweiligen "Section" sicherer und das gute ist das die *.conf Datei "[]" eh nicht berücksichtigt und dadurch egal ist ob das eingefügt wird oder nicht.
Das werde ich mir dann mal auf die kappe mit schreiben um es denn am Ende zu realisieren wenn ich nun mit meiner WizardPage fertig bin und das mit der onClick abfrage realisiert habe.

Sir Rufo 28. Mai 2013 10:00

AW: Textimport und export
 
Zitat:

Zitat von bennySB (Beitrag 1216676)
Naja die Funktion "INI" habe ich mir schon angeschaut, nur ist dort das Problem das die Zuweisung von Key zu String immer mit einem "=" verbunden wird und solange dieses nicht zu entfernen ist kann ich diese Lösung nicht nutzen, zudem habe ich ja auch eine Funktionierende Variante mit der Hilfe hier nun erstellt^^

Aber ich kann auch gerne die *.conf Datei mal eben anhängen. (nicht wundern ich habe sie nur zum Hochladen in eine *.txt abgeändert)

Aha, also eine INI sieht so aus
Code:
[section]
key=value
und deine CONF sieht so aus
Code:
[section]
key=value
Auszug aus der CONF Datei
Code:
[sdl]
fullscreen=true
fulldouble=true
fullresolution=original
windowresolution=desktop
output=surface
autolock=true
sensitivity=200
waitonerror=true
priority=higher,higher
mapperfile=mapper-SVN_MB6.map
usescancodes=false
Stimmt, die sind total anders und da kann man mit INI wohl nichts machen :wall:

Falls du dir es anders überlegst, dann schaust du mal in der InnoSetup-Doku nach
http://www.jrsoftware.org/ishelp/ind...pic=inisection

bennySB 28. Mai 2013 10:05

AW: Textimport und export
 
Zitat:

Zitat von Sir Rufo (Beitrag 1216687)
Zitat:

Zitat von bennySB (Beitrag 1216676)
Naja die Funktion "INI" habe ich mir schon angeschaut, nur ist dort das Problem das die Zuweisung von Key zu String immer mit einem "=" verbunden wird und solange dieses nicht zu entfernen ist kann ich diese Lösung nicht nutzen, zudem habe ich ja auch eine Funktionierende Variante mit der Hilfe hier nun erstellt^^

Aber ich kann auch gerne die *.conf Datei mal eben anhängen. (nicht wundern ich habe sie nur zum Hochladen in eine *.txt abgeändert)

Aha, also eine INI sieht so aus
Code:
[section]
key=value
und deine CONF sieht so aus
Code:
[section]
key=value
Auszug aus der CONF Datei
Code:
[sdl]
fullscreen=true
fulldouble=true
fullresolution=original
windowresolution=desktop
output=surface
autolock=true
sensitivity=200
waitonerror=true
priority=higher,higher
mapperfile=mapper-SVN_MB6.map
usescancodes=false
Stimmt, die sind total anders und da kann man mit INI wohl nichts machen :wall:

Falls du dir es anders überlegst, dann schaust du mal in der InnoSetup-Doku nach
http://www.jrsoftware.org/ishelp/ind...pic=inisection


Sorry das ich nun etwas abfallender werde, aber wenn du schon mit solchen Kommentaren kommen willst dann lies dir erstmal genau durch was ich überhaupt haben und machen will. ich habe die genauen Positionen genannt an denen ich arbeiten muss und dort sind keine "=" vorhanden und auch nicht zulässig.
Also bitte erst informieren und dann klotzen.

DeddyH 28. Mai 2013 11:11

AW: Textimport und export
 
Die einzigen Zeilen in der geposteten Datei, die kein Schlüssel-Werte-Paar darstellen, sind die Abschnittszeilen und die Kommentare. Welche willst Du denn ändern?


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

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