AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

meminifiles, inifiles , einlesen scheitert

Ein Thema von bernhard_LA · begonnen am 21. Okt 2021 · letzter Beitrag vom 22. Okt 2021
Antwort Antwort
Seite 1 von 2  1 2      
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

meminifiles, inifiles , einlesen scheitert

  Alt 21. Okt 2021, 14:54
ich habe schon wieder ein Probleme beim Einlesen von *.ini files,
der Code wurde auf TMemInifile umgestellt, allerdings das Einlesen klappt nur bei ~50 % alles Infiles,
Im Notepad sehen alle Files
sinnvoll aus, die Files werden aus einer Delphi Anwendung heraus geschrieben mit der Klasse TInifile.



Delphi-Quellcode:
function ReadINIString(filename: string; SectionStr: string;
  IdentStr: String): string;
var
  IniFile: TMemIniFile;
begin
  if FileExists(filename) then
  begin
    IniFile := TMemIniFile.Create(filename);
    try
      Result := IniFile.ReadString(SectionStr, IdentStr, '<none>');
    finally
      IniFile.Free;
    end;
  end
  else
  begin
    Result := '<no file found>';
  end;
end;


Frage : hat jemand eine Anwendung / Code mit der ich eine *.ini Datei prüfen kann ob sie erfolgreich gelesen werden kann ?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: meminifiles, inifiles , einlesen scheitert

  Alt 21. Okt 2021, 15:00
allerdings das Einlesen klappt nur bei ~50 % alles Infiles,
Dann häng doch mal so eine Datei an, die nicht eingelesen wird.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: meminifiles, inifiles , einlesen scheitert

  Alt 21. Okt 2021, 15:17
leider unmöglich ... Firmen interne Daten
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: meminifiles, inifiles , einlesen scheitert

  Alt 21. Okt 2021, 15:20
Ini-Dateien sind echt kein Hexenwerk, das TMemIniFile ist im Endeffekt nur eine StringList. Schau doch im Debugger einfach ob er den Kram richtig einliest oder ob z.B. beim Encoding was quer hängt.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#5

AW: meminifiles, inifiles , einlesen scheitert

  Alt 21. Okt 2021, 15:25
Vor allem prüfe das Daten Format mit dem die Ini Dateien geschrieben wurden.
Mit UltraEdit geht das gut. Steht unten in der Status Zeile.

DOS, UNIX oder what ever
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#6

AW: meminifiles, inifiles , einlesen scheitert

  Alt 21. Okt 2021, 15:42
Wie groß sind die Dateien?

5 Zeilen?
50 Zeilen?
5000 Zeilen?
50000000 Zeilen?

Dateigröße in Byte, KByte, ... TByte?

Zeichensatz:
Schreiben OEM Lesen UTF8?
Schreiben ANSI Lesen UTF8?
...
Schreiben UTF8 Lesen ANSI?
Schreiben UTF8 Lesen OEM?

Oder was auch immer?

Klappt es einfach nur nicht oder gibt es auch 'ne Fehlermeldung?

Wo ist die Fehlerbehandlung? Außerhalb von ReadINIString?

Würde da mal noch ein Try Except end mit einbauen.
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#7

AW: meminifiles, inifiles , einlesen scheitert

  Alt 21. Okt 2021, 16:38
Bis zu einer bestimmten Version wurde beim Einlesen abgebrochen, wenn in der Datei /Stream ein #0 vorkommt.
In XE7 ist das so und bei 10.4 nicht mehr.
Erkennbar ist das in der System.Classes in der Methode
Delphi-Quellcode:
procedure TStrings.SetTextStr
...
while P^ <> #0 do
...
Ich würde da mal einen Haltepunkt setzen oder mit dem Hex-Editor (HxD) nach #0 suchen.

Geändert von BerndS (21. Okt 2021 um 16:52 Uhr) Grund: HxD hinzugefügt
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: meminifiles, inifiles , einlesen scheitert

  Alt 22. Okt 2021, 11:07
das Problem liegt vlt. doch nicht an den Files ....
ich habe eine Mini-Testprogramm geschrieben , in diesem Falle klappt das einlesen der Sections, welches in der echten Anwendung fehlschlägt



Delphi-Quellcode:
procedure TForm2.ReadPointlist3Dfile(filename: string);
var
  AptList: TPointList3DAlign;
begin
  AptList := TPointList3DAlign.Create;

  AptList.LoadfromFile(filename);

  CopyPointList2Memo(AptList, 'debug 3D', Memo3);
end;

procedure TForm2.ReadPointlistfile(filename: string);
var
  AptList: TPointlist;
begin
  AptList := TPointlist.Create;

  AptList.LoadfromFile(filename);

  CopyPointList2Memo(AptList, 'debug 2D ', Memo3);

  AptList.SavetoFile(filename);
end;

procedure TForm2.ReadInifile(filename: string);
var
  aini: TInifile;
  Sections: TStringlist;
begin
  aini := TInifile.Create(filename);

  Sections := TStringlist.Create;

  aini.ReadSections(Sections);

  Memo2.Lines.AddStrings(Sections);

  aini.Free;

  Sections.Free;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute() then
  begin
    Memo1.Lines.LoadfromFile(OpenDialog1.filename);

    ReadInifile(OpenDialog1.filename);

    ReadPointlistfile(OpenDialog1.filename);

    ReadPointlist3Dfile(OpenDialog1.filename);
  end;
end;

end.

Das nun existierende Problem, die eigentliche Anwendung führt auch nur diese 3 Schritte aus (und natürlich viele anderr ...) schlägt weiterhin fehl.

Delphi-Quellcode:
  
  AptList := TPointList3DAlign.Create;

  AptList.LoadfromFile(filename);

  CopyPointList2Memo(AptList, 'debug 3D', Memo3);
im Debugging zeigt sich , daß bei AptList.LoadfromFile(filename); keine Sections gefunden werden .....

Geändert von bernhard_LA (22. Okt 2021 um 11:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#9

AW: meminifiles, inifiles , einlesen scheitert

  Alt 22. Okt 2021, 11:35
Vielleicht ist die Datei noch von einer anderen Anwendung gesperrt oder sowas in der Art.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#10

AW: meminifiles, inifiles , einlesen scheitert

  Alt 22. Okt 2021, 12:46
Da hier sämtliche Ressourcenschutzblöche fehlen, kann er es auch selber sein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 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