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/)
-   -   Inno Setup ini ohne Section? (https://www.delphipraxis.net/195690-inno-setup-ini-ohne-section.html)

MarkusL. 18. Mär 2018 17:29

Inno Setup ini ohne Section?
 
Ich brauche eine ini ohne Section, ist das mit Inno Setup möglich?
Wenn nicht gibt es auch noch andere Möglichkeiten?

Gruß Markus

KodeZwerg 18. Mär 2018 17:44

AW: Inno Setup ini ohne Section?
 
WinRAR -> selbstentpackendes Archiv vielleicht?

günni0 18. Mär 2018 17:52

AW: Inno Setup ini ohne Section?
 
Ich verstehe das Problem ehrlich gesagt nicht.
Niemand hindert dich daran eine leere Textdatei oder was auch immer ins Setup einzubauen.

MarkusL. 18. Mär 2018 19:53

AW: Inno Setup ini ohne Section?
 
Normalerweise sieht es ja so aus:
Code:
Filename: "MyProg.ini"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"
Ohne Section geht es leider nicht:
Code:
Filename: "MyProg.ini"; Key: "InstallPath"; String: "{app}"
Weil die Section erforderlich ist.
Wie kann ich denn jetzt trotzdem eine .ini erstellen lassen mit Inno Setup?

günni0 18. Mär 2018 19:55

AW: Inno Setup ini ohne Section?
 
Erstell die Ini schon vorher und pack sie in den Installer als ganz normale, zu installierende Datei.

MarkusL. 18. Mär 2018 20:04

AW: Inno Setup ini ohne Section?
 
Zitat:

Zitat von günni0 (Beitrag 1396549)
Erstell die Ini schon vorher und pack sie in den Installer als ganz normale, zu installierende Datei.

Ich möchte dort aber während der Installation was eintragen lassen.

Code:
Filename: "MyProg.ini"; Key: "InstallPath"; String: "{cm:Dassollmitrein}"
In den "String". Ich bin auch schon auf die Idee gekommen das ich eine ini erstellen lasse und danach mir einer bat die Section aus der ini löschen lasse aber das hat auch nicht funktioniert. Bin leider auch kein Profi, deshalb frage ich ja auch hier :)

KodeZwerg 18. Mär 2018 20:05

AW: Inno Setup ini ohne Section?
 
Dürfte ich mal nachfragen was das Ziel ist? Vielleicht gibt es ja andere Wege das noch undefinierte Problem anzugehen?
Eine .ini Datei ohne Section ist eine leere Datei wie günni0 bereits andeutete. (Oder irgendeine x-beliebige Textdatei)

Hier ein Code Beispiel für Delphi um eine Section zu löschen:
Code:
Procedure MachDasWeg;
var
  ini: TIniFile;
begin
  ini := TIniFile.Create('DasOpfer.ini'); // hier gib den Pfad + .ini Namen an
  try
    ini.EraseSection('Ich_Muss_Weg'); // hier gib die zu entfernende Sektion an
  finally
    ini.Free;
  end;
end;

Uwe Raabe 18. Mär 2018 21:29

AW: Inno Setup ini ohne Section?
 
Gibt es die INI-Datei schon? Wenn ja, wo soll dann der betreffende Text hin (Anfang, Ende, sonstwo)?

Wenn du einfach eine Textdatei schreiben willst, dann kannst du eventuell die Pascal-Script-Funktion SaveStringsToFile verwenden.

CCRDude 19. Mär 2018 08:11

AW: Inno Setup ini ohne Section?
 
Eine Datei mit Key=Value-Paaren ohne Sektionen ist ja keine INI-Datei im eigentlichen Sinne, sondern kann gut von TStringList abgebildet werden.

Wie Uwe Raabe ja schon schrieb, kann InnoSetup PascalScript. Schaue mal in der Anleitung nach CurStepChanged und setze Dein Schreiben für CurStep = ssInstall oder ssPostInstall um. So mal ohne zu testen grob getippt:
Delphi-Quellcode:
procedure CurStepChanged(CurStep: TSetupStep; var AAbort: boolean);
var sl: TStringList;
begin
  if (CurStep = ssPostInstall) then begin
    sl := TStringList.Create;
    try
      sl.LoadFromFile(ExpandConstant('{app}\MyProg.ini'));
      sl.Values['InstallPath'] := ExpandConstant('{app}');
      sl.SaveToFile(ExpandConstant('{app}\MyProg.ini'));
    finally
      sl.Free;
    end;
  end;
end;

MarkusL. 19. Mär 2018 14:42

AW: Inno Setup ini ohne Section?
 
Zitat:

Zitat von CCRDude (Beitrag 1396569)
Eine Datei mit Key=Value-Paaren ohne Sektionen ist ja keine INI-Datei im eigentlichen Sinne, sondern kann gut von TStringList abgebildet werden.

Wie Uwe Raabe ja schon schrieb, kann InnoSetup PascalScript. Schaue mal in der Anleitung nach CurStepChanged und setze Dein Schreiben für CurStep = ssInstall oder ssPostInstall um. So mal ohne zu testen grob getippt:
Delphi-Quellcode:
procedure CurStepChanged(CurStep: TSetupStep; var AAbort: boolean);
var sl: TStringList;
begin
  if (CurStep = ssPostInstall) then begin
    sl := TStringList.Create;
    try
      sl.LoadFromFile(ExpandConstant('{app}\MyProg.ini'));
      sl.Values['InstallPath'] := ExpandConstant('{app}');
      sl.SaveToFile(ExpandConstant('{app}\MyProg.ini'));
    finally
      sl.Free;
    end;
  end;
end;

Danke für die Hilfe, aber ich bekomme dort eine Compiler Error Meldung "Unknown identifier 'VALUES'"


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 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