![]() |
IniFile.ReadString liest nicht alles aus!
Moin,
ich habe gerade 30 Minuten den Fehler in meinem Programm gesucht, habe ihn auch gefunden und konnte dir Schuld sogar wenn mir wegschieben. :P Problem:
Delphi-Quellcode:
Damit liest man normalerweise eine Ini-Datei aus. Klappt aber leider überhaupt nicht wenn zwei Anführungszeichen als Werte drinstehen also zum Beispiel:
var
ini : TIniFile; /// etc... test := ini.ReadString('wasweiß', 'ich', ''); Zitat:
Vielen Dank schonmal, |
Re: IniFile.ReadString liest nicht alles aus!
ja wie?
Delphi-Quellcode:
oder
test = ''
Delphi-Quellcode:
?
test = nil
und ist das nicht beides das selbe? EDIT: oder willst du literal '""' rauskriegen? dann kann ich dir auch nciht helfen :stupid: |
Re: IniFile.ReadString liest nicht alles aus!
Ja, ich möchte das die Ini korrekt ausgelesen wird und in der Variablen dann "" steht.
Delphi-Quellcode:
(also)
variable := '""';
|
Re: IniFile.ReadString liest nicht alles aus!
Das setze das Default auf was anderes wie den Leerstring und überprüfe dann auf ihn.
|
Re: IniFile.ReadString liest nicht alles aus!
@mkinzler: und was macht er dann, wenn die variable nicht vorhanden ist?
Delphi-Quellcode:
'' <> '""'
|
Re: IniFile.ReadString liest nicht alles aus!
Zitat:
|
Re: IniFile.ReadString liest nicht alles aus!
Zitat:
|
Re: IniFile.ReadString liest nicht alles aus!
TIniFile:
Delphi-Quellcode:
:shock: was ist das denn?
function TIniFile.ReadString(const Section, Ident, Default: string): string;
var Buffer: array[0..2047] of Char; begin SetString(Result, Buffer, GetPrivateProfileString(PChar(Section), PChar(Ident), PChar(Default), Buffer, SizeOf(Buffer), PChar(FFileName))); end; TMemIniFile:
Delphi-Quellcode:
Vielleicht hast du damit mehr Glück.
begin
I := FSections.IndexOf(Section); if I >= 0 then begin Strings := TStrings(FSections.Objects[I]); I := Strings.IndexOfName(Ident); if I >= 0 then begin Result := Copy(Strings[I], Length(Ident) + 2, Maxint); Exit; end; end; Result := Default; end; EDIT: @mkinzler: aber das will er ja nicht :stupid: @balu: TMemIniFile ist sowieso im allgemeinen vorzuziehen. |
Re: IniFile.ReadString liest nicht alles aus!
Also ich habe hier doch ein etwas größeres Projekt und lese insgesamt mehr als 8 Ini-Dateien aus. Um ehrlich zu sein habe ich keine Lust alles auf ein TMemIniFile umzustellen. Trotzdem danke, aber ich hoffe ich (ihr :P )finde noch eine Möglichkeit es mit IniFile auszulesen.
|
Re: IniFile.ReadString liest nicht alles aus!
StringReplace(quellcode, 'TIniFile','TMemIniFile');
ist dir zu kompliziert? Wenn du meinst.... (mit GExperts und grep sollte das schnell gehen... hab da aber noch kein projektweites ersetzen gefunden) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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 by Thomas Breitkreuz