Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kurze Frage zur Config.ini (https://www.delphipraxis.net/162529-kurze-frage-zur-config-ini.html)

LittleTee 26. Aug 2011 17:29

Kurze Frage zur Config.ini
 
Hallo liebe Delphi-Community!

Ich habe erst vor kurzem mit der schönen Sprache Delphi begonnen und war sofort fasziniert :cyclops:
Nun da ich aber noch ein Anfänger bin kam ich nicht zur Lösung meines kleinen Problems :cry:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Ini: TIniFile;
begin
  Ini:=TIniFile.Create('C:\Users\Name\Projekt\Patienten.ini');
    try
    Ini.WriteString('Patient', 'Name',Edit1.Text);
    Ini.WriteString('Patient', 'Vorname',Edit2.Text);
    Ini.WriteString('Patient', 'Geb.Datum',Edit3.Text);
    Ini.WriteString('Patient', 'Krankenkasse',Edit4.Text);
    Ini.WriteString('Patient', 'Blutgruppe',Edit5.Text);
    Ini.WriteString('Patient', 'Strasse',Edit6.Text);
    Ini.WriteString('Patient', 'PLZ',Edit7.Text);
    Ini.WriteString('Patient', 'Ort',Edit8.Text);
    Ini.WriteString('Patient', 'Tel',Edit9.Text);
    Ini.WriteBool('Patient','Männlich',RadioButton1.Checked);
    Ini.WriteBool('Patient','Weiblich',RadioButton2.Checked);
    Panel1.Font.Size:=18;
    Panel1.Caption:='Gespeichert';
  finally
    Ini.Free;
  end;
  end;
Nun hier speichert er mir die Daten immer in der Spalte '[Patienten]'. Nun will ich aber, dass bei jedem Klick [Button1Click] die Patientenanzahl um 1 erhöht, dass der Patient davor nicht verloren geht. Ich hatte mir da irgendwie sowas gedacht:
Delphi-Quellcode:
Ini.WriteString('Patient'+1, 'Name',Edit1.Text);
Aber scheint nicht so ganz zu funktionieren wie ich es wollte :roll:


Könnt ihr mir bei meinem Problem helfen :?:


MfG Little~

Codewalker 26. Aug 2011 17:34

AW: Kurze Frage zur Config.ini
 
Delphi ist recht strikt was Datentypen angeht. Die Write-Methoden von TIniFile erwarten nunmal für den Namen des Abschnitts einen String und keine Zahl. Du musst die daher die aktuelle Anzahl an Patienten in einer Integer-Variablen merken und diese bei Bedarf um 1 erhöhen. Außerdem musst du den Integer für den Aufruf der WriteMethoden in einen String konvertieren - das erledigt die Funktion
Delphi-Quellcode:
IntToStr(...)
Das ganze sieht dann in etwa so aus:

Delphi-Quellcode:
// irgendwo deine Variable mit der Patientenzahl
var
 Patientenzahl: Integer

{ ... }

// an einer geeigneten Stelle die Zahl erhöhren
 Patientenzahl := Patientenzahl + 1;

{ ... }

// WriteString würde man dann etwa so aufrufen (auch wieder an der passenden Stelle natürlich)
Ini.WriteString('Patient' + IntToStr(Patientenzahl), 'Name',Edit1.Text);

Muellermilchtrinker 26. Aug 2011 17:41

AW: Kurze Frage zur Config.ini
 
Besser ist es noch, wenn du deinen Sectionwert davor festlegst und dann nur noch die Variable nutzt. Beispiel:
Delphi-Quellcode:
Patientenzahl := Patientenzahl + 1;
sectionname := 'Patient' + IntToStr(Patientenzahl);

ini.WriteString(sectionname,'Name',Edit1.Text);

himitsu 26. Aug 2011 19:46

AW: Kurze Frage zur Config.ini
 
Zitat:

Zitat von LittleTee (Beitrag 1119847)
Aber scheint nicht so ganz zu funktionieren wie ich es wollte :roll:

Aber das ist keine verständliche Fehlerbeschreibung und der Thread-Titel sagt auch nichts über dein Problem aus.

Zitat:

[DCC Fehler] Unit2.pas(177): E2010 Inkompatible Typen: 'string' und 'Integer'
Wobei das hier ja eigentlich das Problem erklärt.

Integer paßt nicht zum String, also macht man sich einfach aus dem Integer einen String. :angle2:

Und Codewalker hat den Grund ja schon gesagt.
Typen müssen immer genau übereinstimmen.
Aber für viele Stringtypen gibt es untereinander automatische Konvertierungen, so wie auch vor viele ordinale Typen,
aber zwischen Ordinal und String gibt es keine automatische konvertierung.

LittleTee 26. Aug 2011 20:44

AW: Kurze Frage zur Config.ini
 
Danke für die vielen Antworten :3
Mein Problem ist jetzt auch gelöst!

PS: Nächstes mal werde ich auf einen geeigneten Thread Titel und eine Fehlerbeschreibung achten :)
Aber wie gesagt, ich bin noch ein recht kleines Küken in der Delphi Branche :)


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