-
Forum: Software-Projekte der Mitglieder
by LTE5,
20. Nov 2017
Ich musste deine Antwort zweimal lesen. Denn ich habe eigentlich noch mit Kritik gerechnet und dass irgendetwas, was absolut funktionieren muss, nicht funktioniert.
Aber wenn es bisher nur das ist :thumb:
-
Forum: Software-Projekte der Mitglieder
by LTE5,
20. Nov 2017
Ich habe gerade eben Version 0.3 in den ersten Beitrag gepackt. Ich habe ein wenig aufgeräumt und umgebaut.
Eigentlich sollte nun einiges funktionieren.
Die BOM-Prüfung wird bisher nur von IsFileUnicode() genutzt.
Nachtrag: sollte etwas nicht funktionieren und das sogar sehr offensichtlich, und ich habe es nicht gesehen, dann bitte ich um ein paar Ohrfeigen.
-
Forum: Software-Projekte der Mitglieder
by LTE5,
20. Nov 2017
Edit
ich habe die Funktion IsTextUnicode jetzt komplett entfernt. Ich brauchte sie eh nicht.
Dafür funktioniert bei mir der Rest wenigstens wie erwartet.
Feedback trotzdem gerne willkommen, denn schön ist die Unit meiner Meinung nach nicht.
-
Forum: Software-Projekte der Mitglieder
by LTE5,
20. Nov 2017
Deswegen habe ich im ersten Beitrag im Feedback und Korrekturen gebeten.
Doch, eigentlich schon.
Wie gesagt. Ich würde mich sehr freuen wenn ihr mir helft, dass es funktioniert. Mehr als das was im ersten Beitrag steht schaffe ich nicht.
-
Forum: Software-Projekte der Mitglieder
by LTE5,
20. Nov 2017
Einen zweiten habe ich gerade auch noch gefunden.
Wenn IsStreamUnicode aufgerufen wird, wird als erstes GetFileEncoding aufgerufen. Findet GetFileEncoding kein BOM, wird wieder IsStreamUnicode aufgerufen. IsStreamUnicode läuft also im schlimmsten Fall zweimal durch.
Hat jemand eine Idee wie man diese beiden unschönen Fehler weg bekommt?
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Alle Änderungen wurden übernommen.
Alle Funktionen nehmen nun auch Streams entgegen.
Es gibt einen kleinen Aufbaufehler, den ich notgedrungen mit der Variablen SkipBOMCheck lösen musste. Sonst würde sich eine Funktion immer wieder selber aufrufen.
Grund dafür, dass GetFileEncoding aber in IsStreamUnicode steckt ist, weil IsStreamUnicode am niedrigsten Punkt ist und von allen übergeordneten...
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Ich habe mir eben mal einen HexEditor besorgt.
Damit verstehe ich das alles vielleicht besser wenn ich dann noch alles mit Haltepunkten durchgehe oder anderweitig mir anzeigen lasse was gerade los ist.
Der Hex-Editor hat ein wenig, aber nicht komplett, Licht ins Dunkle gebracht. Interessant war nur zu sehen, dass mein HexEditor keine UTF-8 mit BOM-Dateien lesen konnte.
Muss vielleicht einen...
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Spätestens hier resigniere ich.
Ich muss mir das heute Abend mal in Ruhe angucken. Speziell dieses weitere mit inkrementieren und dekrementieren.
Ist es möglich von irgendeiner Quelle UTF-8-Dateien mit absichtlichen Fehlern zu bekommen?
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Leider bringt mir der String aber nicht, wenn es um das Encoding geht, welches ich bei TMemIniFile brauche.
Auf soviele verschiedene Bytes kann ich doch gar nicht prüfen.
Oder sind das insgesamt nur 6?
Ich habe mich mal so daran versucht. Ist das so richtig?
var i: Integer; B: Byte; Bytes: TBytes;
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Habe wieder viel zu lesen! Melde mich gleich.
Ich habe in der Zwischenzeit Support für Streams eingebaut. Schreibe ich gleich in Beitrag #1.
Genau das will ich ja aber. Ich brauche das Encoding, eben damit ich die Daten lesen kann. Sonst würde ich mir die ganze Mühe nicht machen.
Welche Sequenz ist das denn genau und wie prüfe ich danach?
Sollte man demnach hier unten also besser...
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Wie genau müsste man denn dann nachprüfen?
Einfach bis 255 klingt ja zu einfach.
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Irgendwie habe ich den Eindruck meine Unit ist mehr als nutzlos in diesem Encoding-Labyrinth.
Aber mehr als "erraten" kann man ja eh nicht. Also versuche ich jedenfalls das.
Wenn jemand eine bessere Unit bauen kann, würde sich jemand dazu bereit erklären?
Was ich damit meine ist, wenn ein Zeichen > 127 vorkommt, ist es etwas anderes als ANSI.
# Ich habe die Unit in #1 nochmal...
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Also im Prinzip habe ich mich Tage lang umsonst bemüht?
GetPreamble ist gut. Aber TEncoding kennt wie gesagt UTF32 nicht.
Wäre also eine Lösung für alles, bis auf UTF32. Ich füge es oben gleich mal an.
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Danke erst einmal.
TEncoding wäre mir auch lieber. Was TEncoding aber nicht kennt sind die UTF32-Varianten von Endian. Oder zählt UTF32 unter TEncoding.Unicode?
Was mich auch stört ist, dass ich bei nur einem Aufruf von IsFileUnicode 2x TBytesStream erzeuge, wenn es ganz durch geht.
Das könnte man mit einem Konstruktor und Destruktor-Konstrukt lösen. Aber dann wäre es kein Einzeiler mehr.
...
-
Forum: Software-Projekte der Mitglieder
by LTE5,
19. Nov 2017
Ich möchte euch gerne meine Arbeit aus den vergangenen Tagen vorstellen.
Ich bin kein Profi und habe mich erst vor wenigen Tagen in Streams eingelesen.
Ich brauchte eine Lösung, um mehr oder weniger zuverlässig das Encoding einer Datei herausfinden zu können.
Über BOM ist das ja leider nicht immer feststellbar, daher habe ich eine andere Lösung entworfen.
Sie ist weder professionell noch...