Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wegen XML: Wenn du nichts eigenes schreiben willst, kannst du dir mal libxml2 anschauen. Das ist wohl die mächtigste XML-Bibliothek, die man finden kann. Dort werden nicht nur die Dateien gelesen sondern auch als Binärbaum aufbereitet und in UTF-8 konvertiert, sodass du dir darum auch nicht unbedingt gedanken machen musst (wenn dir UTF-8 nicht passt, der FPC hat da umwandlungsroutinen).
Der Header und die DLL finden sich im DGLSDK (aktuelle versionen auf xmlsoft.org).
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: So Mai 11, 2003 10:36 Beiträge: 285 Wohnort: Oldenburg
Programmiersprache: Object Pascal
Vielen Dank ! Ich werde mir das aufjedenfall mal ansehen.
Ich weiß aber das Lazarus sowas von sich aus mitbringt. Damit habe ich auch schon die eine oder andere XML Datei gelesen.
Ich kann mich nur noch nicht für eine Interne Datenstruktur entscheiden.
Sollte ich die Infos Direkt aus dem XML Baum lesen und verarbeiten ?
Z.B. Ich brauche eine Liste alle Schlüsselwörter die die jeweilige Sprache eben hat, angenommen der Pfad ist immer der gleiche z.b.
xml\Schlüsselwörter\
Dann müsste ich ja erstmal xml suchen und dann das Wort Schlüsselwörter
Das ist jetzt nur ein Beispiel Pfad. Darum dachte ich mir es währe bestimmt besser und schneller, wenn ich die XML Daten in eine für mich leichtere Struktur bringe !
Da ich ja beim Zeichnen Schauen muss, um was es sich handelt ob es jetzt ein Schlüsselwort oder
was auch immer ist. Ich denke selbst bei 100 Schlüsselwörtern dürfte das suchen in der Liste schnell genug sein um das ständig zu machen.
Solange es sich um eine Liste handelt.
Der Rest ist einfacher, da es ja noch Strings, Zahlen und sowas gibt.
Ich spiele auch mit den Gedanken, Proceduren und Funktions Anfänge zu kennzeichnen. z.b. zu unterstreichen.
Das währe evlt. eine Orientierungshilfe !
Ich hoffe ihr wisst was ich meine.
Im Moment habe ich noch kleine Problem damit, das Wort unter dem Cursor zu ersetzten. Durch ein anders Word.
Danach wollte ich das Gatter überarbeiten.
Aber, wenn ihr lust und Zeit habt, können wir ja über die XML Struktur etwas genauer sprechen. Bisher habe ich das auch nicht gerade oft gemacht.
Z.B. geschrieben habe ich XML auch noch nie.
Ich würde auch viel lieber ini Dateien lesen und schreiben, da es einfacher ist. Aber ich möchte die Dateien jetzt auch nicht zu INI umwandeln. das währe ja unpraktisch !
In Einigen der XML Dateien werden zu den Sprachen auch ein Beispiel Soruce gezeigt. Leider nicht in allen.
Daher müsste ich auch prüfen ob es den Pfad auch gibt.
Wie würdet ihr denn eine etwas komplexere XML Datei auslesen ?
Ich hänge einfach mal eine dran.
Von Pascal gibt es gleich Drei Dateien:
Delphi,
Pascal
Pascal (Turbo)
Mein
_________________ MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Wenn eine neue Zeile erstellt wird, wird innerhalb das gatter dieses Muster wiederholt. z.b. ich habe 20 Text Zeilen, würde das
Gatter so aussehen:
1
2
1
2
1
2
1
2
und soweiter
Ich hoffe das Prinzip ist soweit klar.
Die Gatter Einträge selbst werden in einer extra Liste gespeichert. So spare ich speicher, bei großen Soruce-Code Dateien. Hoffe ich.
Die Zeilen-Indexe kann ich Prima anzeigen lassen mit hilfe dieser Procedure:
if Gatter.GatterItem[kl].GatterItem[1].Text <> ''thenbegin
Gatter.GatterItem[kl].GatterItem[1].Text:='';
Gatter.GatterItem[kl].GatterItem[1].Paint;
end;
end;
end;
end;
end;
Beim Scrollen wirderholen sich die Sprungmarken zahlen. Ich habe z.b. eine Sprungmarke gesetzt wiederholen sie sich.
Ich vermute das liegt in diesen Code Abschnitt die Ursache.
Ich glaube es würde gehen, wenn es mir gelinkt den DrawIndex zu berechnen. Also kl.
Wie schon erwähnt: Die Gatter-Einträge sind in einer Extra Liste gespeichert.
Ich hoffe einer von euch hat das Problem verstanden und kann mir weiter Helfen. Zur Zeit habe ich keine Brauchbare Lösung, außer diesen Teil in die Paint Methode zu verschieben. Aber dann müsste ich das Gatter Jedes Mal neu zeichnen, wenn ich eine Sprungmarke setzte.
_________________ MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Registriert: So Mai 11, 2003 10:36 Beiträge: 285 Wohnort: Oldenburg
Programmiersprache: Object Pascal
Vielen Dank, Traude.... dein Letzter Code hat mir ja sehr weiter geholfen, ich hoffe der hilft mir auch weiter *G*..... macht ein guten eindruck. Allerdings verwendest du nur eine Schrift Größe pro Zeile.... ich hoffe ich kann das anpassen.
_________________ MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.