AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit
Thema durchsuchen
Ansicht
Themen-Optionen

Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit

Ein Thema von Codehunter · begonnen am 19. Okt 2012 · letzter Beitrag vom 15. Jan 2013
Antwort Antwort
Seite 3 von 3     123   
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit

  Alt 30. Okt 2012, 12:04
Ja Unicode und echte Objektorientierung ohne Abhängigkeit vom WinAPI.
Was heißt denn jetzt Unicode-Fähigkeit?
Das Unicode-Strings ins Ini-File abgespeichert werden?
Das ist in TMemIniFile (ab Delphi 2009) gegeben, es wird mit den Typ String gearbeitet.

Auch verwendet TMemIniFile nicht die WinAPI-Funktionen GetPrivateProfileString/WritePrivateProfileString sondern setzt auf hierarchische String-Listen.

Bitte bei Gelegenheit einen Blick auf die Doku und/oder Code werfen.

Vielleicht reicht es schon wenn du deine Klasse davon ableitest?!
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#22

AW: Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit

  Alt 31. Okt 2012, 07:47
Das mag ja alles richtig sein. Aber zum ersten solltest du mal einen Blick auf meine Delphi-Version werfen und zum zweiten den ganzen Thread durchlesen. Ich halte T(Mem)IniFile für strukturell in manchen Szenarien schlichtweg ungeeignet.

Unter ähnlichen Voraussetzungen ist damals auch TVirtualTreeView entstanden. Da gabs bestimmt auch einige, die der Ansicht waren, der Standard-VCL-Treeview wäre vollkommen ausreichend. Es gibt aber immer Anwndungsfälle, wo TVirtualTreeview dem TTreeView haushoch überlegen ist.

Schaut euch den Quelltext wirklich mal praktisch an und vorallem nicht den Teil den ich nur zur Kompatibilität mit TIniFile eingebaut habe sondern den objektorientierten Teil.
Delphi-Quellcode:
with TUniObjectIni.Create('C:\Test.ini') do begin
  try
    Sections['TheSection']['TheIdent'].Str:= 'ABC';
    Sections['TheSection']['TheIdent'].Int:= 123;
    Sections['TheSection']['TheIdent'].DateTime:= Now;
    {....}
  finally
    Free.
  end;
end;
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#23

AW: Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit

  Alt 31. Okt 2012, 09:13
Man sollte nie fragen wozu etwas gut ist.

Ich hatte mit einem anderen Delphianer mal vor eine Datenbank auf Grundlage der Ini zu entwickeln, so just4fun. Es ist natürlich klar, dass die Ini dazu nicht taugt, aber es wäre schon lustig gewesen mit den Datenbankkomponenten auf eine Ini zuzugreifen. Die Verwaltung hätte ich schon hinbekommen, aber mir fehlte das Wissen bezüglich der Schnittstelle, was ich vor allem für ein anderes Projekt brauchte.

Damals, als kein Schwein noch etwas von PHP oder MySQL hörte, bzw. man seine Seiten statisch ins Web stellte, hat mich einer gebeten mir was für statische Seiten auszudenken. Ich hab das auch in einem Projekt umgesetzt und es klappte sehr gut, nur eben ohne die Datenbankkomponenten. Die Begeisterung anderer Programmierer hielt sich in Grenzen: die vorhandenen Datenbanken sehr gut sind und zurzeit besteht kein Bedarf an etwas neuem.

Übrigens, was ich da programmiert habe sah in etwa so aus:
Code:
<db=name>Anna</db> <db=nachname>Wegener</db>
Browser ignorieren Tags die sie nicht kennen. Jede Html-Seite ein Datensatz. Die Ausgabe wäre
Code:
Anna Wegener
. Die Daten sind in der Webseite versteckt und man könnte sie jederzeit auslesen und ändern. Heute ist das nichts, aber damals wurden damit paar hundert Artikel verwaltet.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit

  Alt 31. Okt 2012, 09:42
Sagen wir mal so: Wenn man es mal auf die Basics runterbricht, dann ist eine INI jetzt schon eine Datenbank. Theoretisch könnte man auf Basis meiner Klasse sogar jetzt schon transaktionale Zugriffe realisieren denke ich. Aber ganz ehrlich: Eine INI halte ich nicht für eine gute Basis für eine Datenbank.

Aber wenn ich eines gelernt habe: Es ist nicht immer schlecht, wenn man gelegentlich ein Rad neu erfindet. Denn nur weil die Mehrheit das alte Rad schon für perfekt hält, warum nicht überlegen ob es tatsächlich so ist. Man kann sich dabei auch irren. So oder so lernt man was dabei
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#25

AW: Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit

  Alt 2. Nov 2012, 10:17
Update: Bösen bösen Bug entfernt, wodurch es nicht möglich war, Boolsche Werte als FALSE (="OFF") zu speichern, es kam immer ein "ON" in der Ini an. Genauer gesagt war der Fehler im Parsing der Metadaten zu finden.
Angehängte Dateien
Dateityp: pas UniObjectIni.pas (48,8 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit

  Alt 15. Nov 2012, 11:47
Update: Noch so einen Bösling entfernt, der bei Strings mit Zeilenumbrüchen endlose Backslash-Ketten produzierte.
Angehängte Dateien
Dateityp: pas UniObjectIni.pas (50,3 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#27

AW: Objektorientiertes TIniFile-Replacement mit Unicode-Fähigkeit

  Alt 15. Jan 2013, 09:49
Update: Verbesserungen bei Values mit Steuerzeichen (Zeilenumbrüche etc.)
Angehängte Dateien
Dateityp: pas UniObjectIni.pas (51,0 KB, 30x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 03:42 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