![]() |
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:
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:
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;
Delphi-Quellcode:
Aber scheint nicht so ganz zu funktionieren wie ich es wollte :roll:
Ini.WriteString('Patient'+1, 'Name',Edit1.Text);
Könnt ihr mir bei meinem Problem helfen :?: MfG Little~ |
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:
Das ganze sieht dann in etwa so aus:
IntToStr(...)
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); |
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); |
AW: Kurze Frage zur Config.ini
Zitat:
Zitat:
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. |
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 08:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz