3. Norddeutsches Lazarustreffen

Alle Informationen zu Treffen der regionalen Lazarus-Gruppen
Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1187
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: 3. Norddeutsches Lazarustreffen

Beitrag von kralle »

Wenn ich richtig gezählt habe,
sind wir morgen 5 Personen.

Kralle
AlterPascaler
nummer8
Joh
Pluto

Bis morgen ...
Kralle
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1187
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: 3. Norddeutsches Lazarustreffen

Beitrag von kralle »

Kennt sich jemand von Euch mit "Anker" aus?

Der visuelle Teil einer App, ist immer nicht zufriedenstellend...

Gruß Kralle
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1187
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: 3. Norddeutsches Lazarustreffen

Beitrag von kralle »

Nachtrag:

Teilnehmer: Kralle, AlterPascaler, nummer8, Joh, Pluto

Über Folgende Themen wurde gesprochen:

- Frage zum Anker-Editor: LabeledEdit (kralle)
Dabei wurde ein Bug im Zusammenspiel zwischen TLabeledEdit und dem Anker-Editor entdeckt.
- Memory Leak mit Lazarus finden (AlterPascaler)
Beispielcode: (https://gitlab.com/ndlt)
- Unterschied "free" und "FreeAndNil"
(AlterPascaler und alle)
- FreeAndNil: Abfrage auf NIL fehlt. Warum? Ursachenforschung.
- Frames (Statische Frames und dynamische Frames - Datenaustausch)(Pluto)
- XML aus ePub (ZIP) extrahieren (Frage von Joh)
Problem von "Joh" konnte dank Teamwork gelöst werden.
- Was ist "Web UI"? Kurze Vostellung von "nummer8"
- Was ist "D2Bridge Web" ? Kurze Vostellung von "nummer8"
- Notizenverwaltung (Pluto)
- "Python for Lazarus" GitHub (nummer8)
- "python4delphi" GitHub (nummer8)

Zum Abschluss ein gemeinsames Essen.

Bis zum nächsten mal ...
Gruß Kralle
OS: Manjaro Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Joh
Lazarusforum e. V.
Beiträge: 277
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: 3. Norddeutsches Lazarustreffen

Beitrag von Joh »

Nachtrag zum Nachtrag:
kralle hat geschrieben: Sa 8. Mär 2025, 23:15 Nachtrag:
.
.
.
- XML aus ePub (ZIP) extrahieren (Frage von Joh)
ich habe versucht, mit der Kröte zipper und ihren fürchterlichen Methoden die epub-Dateien auszulesen. Leider kommt zipper mit den Strukturen meiner epub-Dateien nicht zurecht und wirft bei jeder 20. bis 50. Datei eine interne Exception.

Da ich eh häufiger mit 7zip arbeite, habe ich mich als Alternative für den Pascal 7-zip-Wrapper entschieden.
https://github.com/PascalVault/Lazarus_7zip

Mein Beispiel zum Extrahieren der ersten Datei hat nicht wirklich lange gedauert. Und das für mich eleganteste: ich muß nicht die ganze Datei mit dem Stream schließen und dann neu öffen, sondern kann einfach meine Schleife weiter iterieren. Ich brauche ja aus der ePub-Datei nur 2 Dateien; die erste hat ca. 250 Byte, die 2. wenige kb, die ich dann als xml-Strams weiterverarbeite.

ok, man benötigt die 7zip dll, aber das ist mir für ein internes Projekt eher egal.

Code: Alles auswählen

uses sevenzip7;

procedure chkEPub(datei: String);
var i: Integer;
    stream: TStream;
begin
  stream := TMemoryStream.Create;

  with CreateInArchive(CLSID_CFormatZip) do
  begin
    OpenFile(Datei);
    for i := 0 to NumberOfItems - 1 do
    begin
      if not ItemIsFolder[i] then
        if (ItemPath[i] = 'META-INF\container.xml') then
        begin
          ExtractItem(i, stream, false);
          break;
        end;
    end;
    if stream.size <> 0 then
    begin
      // ersten stream auslesen und verarbeiten
  end;
  stream.free;
end;    
just my two Beer

Antworten