Seite 1 von 1
ASCII-Importfilter bauen
Verfasst: Fr, 28.11.2008 13:38
von gsemmer
Ich brauche Informationen, wie ich Filter für eine ASCII-Datei schreibe.
Ist für Dateien eines Triumph Adler BSM100 Bildschirmschreibsystems,
BJ vor der Jahrtausendwende und noch immer im Einsatz. Aber der Zahn
der Zeit ..
Das hat so 'ne crude Codetabelle wie
Ä=$01
Ü= $03
Fett= $8C
Space = $20, Tabspace = $60 (kann Tabstopps nur mit Pseudo-Leerzeichen anspringen)
usw. usf.
Tips? Hilfen?
Danke im Voraus
Re: ASCII-Importfilter bauen
Verfasst: Fr, 28.11.2008 16:24
von gsemmer
mb2008 hat geschrieben:Hallo,
ist vielleicht ein naiver Ansatz, aber warum baust Du nicht eine einfache Schleife über alle Absätze:
Code: Alles auswählen
ParList = ThisDocument.text.CreateEnumeration
Do While ParList.HasMoreElements
MyPar = ParList.NextElement
If MyPar.SupportsService("com.sun.star.text.Paragraph") Then
ParString = MyPar.string
und gehst diesen String dann Zeichen für Zeichen durch und erledigst die Übersetzung xder Codetabelle (die Du dann natürlich von Hand stricken musst, aber das ist ja bei maximal 256 Zeichen nicht so wild) durch eine Select-Anweisung in der Art
Code: Alles auswählen
Select Case asc(mid(MyChars,i,1))
Case 32 ' space
mid(MyChars,i,1,chr(XXXX))
.....
End Select
(dabei ist i die Position in dem Absatz und XXXX der Code, den Du statt 32 setzen willst). Oder habe ich da jetzt zu einfach gedacht?
Michael
Weil nach dem Importieren die ASCII-Werte schon uminterpretiert sind.
$01 (Ä) $02 (Ü) etc. werden alle zu #
Außerdem ... ein bischen Luxus darfs schon sein ...
Und im Header stehen außerdem Informationen über Pitch, Zeilen pro Seite, Zeichen pro Zeile, etc. (unproportionale Schrift, Courier). Das möchte ich schon einbauen ins erzeugte ODF
Re: ASCII-Importfilter bauen
Verfasst: Fr, 28.11.2008 17:21
von Karolus
Hallo
Ich hab mir mal eine Testdatei mit einem Hex-editor erstellt mit den Hexcodes: 01 und 02.
Diese Testdatei hab dann mittels des Kommandos:
sed -e 's/\x01/ä/g;s/\x02/ö/g' inputtest > outputtest
Nachtrag: kürzer gehts mit:
sed -e 'y/\x01\x02/äö/' inputtest > outputtest
erfolgreich die hexcodes 01 in ä ;und 02 in ö gewandelt.
Allerdings arbeite ich mit einem LInux-system, falls du auf Windows arbeitest müsstes du "Cygwin " installieren
Versuchs doch mal damit.
http://www.pl-berichte.de/t_system/cygwin.html
hier gibts das Programm
ein Sed-Tuturial
Gruß Karo
Re: ASCII-Importfilter bauen
Verfasst: Fr, 28.11.2008 19:16
von gsemmer
Karolus hat geschrieben:Hallo
Ich hab mir mal eine Testdatei mit einem Hex-editor erstellt mit den Hexcodes: 01 und 02.
Diese Testdatei hab dann mittels des Kommandos:
sed -e 's/\x01/ä/g;s/\x02/ö/g' inputtest > outputtest
Nachtrag: kürzer gehts mit:
sed -e 'y/\x01\x02/äö/' inputtest > outputtest
erfolgreich die hexcodes 01 in ä ;und 02 in ö gewandelt.
Allerdings arbeite ich mit einem LInux-system, falls du auf Windows arbeitest müsstes du "Cygwin " installieren
Versuchs doch mal damit.
http://www.pl-berichte.de/t_system/cygwin.html
hier gibts das Programm
ein Sed-Tuturial
Gruß Karo
Das wäre schon eine Lösung, es soll aber auch eine einfache Lösung für Nur-Schreiber werden.
Es haben sich in den letzten Jahren schon etliche Diskette angesammelt. Und eine Herausforderung solls auch sein.
Hat niemand Infos zum Filterschreiben?
Re: ASCII-Importfilter bauen
Verfasst: Fr, 28.11.2008 19:53
von Karolus
Hallo
Wenn das grundsätzlich auf diesem Weg geht kannst du die funktionierente Kommandofolge in ein Script schreiben und musst dann später nur noch das Skript per Doppelklick ausführen.
Gruß Karo
Re: ASCII-Importfilter bauen
Verfasst: Di, 02.12.2008 08:53
von gsemmer
mb2008 hat geschrieben:gsemmer hat geschrieben:Weil nach dem Importieren die ASCII-Werte schon uminterpretiert sind.
Ich hab's ja geahnt, dass ich zu naiv bin ... Aber warum werden die Codes uminterpretiert (ich hätte gedacht, nur die Darstellung ist verhunzt, weil er die Codes als ASCII interpretiert)?
Und im Header stehen außerdem Informationen über Pitch, Zeilen pro Seite, Zeichen pro Zeile, etc. (unproportionale Schrift, Courier).
Das ist dann aber schon mehr als ein ASCII-Importfilter ...
Grüße
Michael
Genauso wie Filter für andere Dokumentformate (rtf, doc, wordperfect, etc.), bei denen Schriftart und -größe, Seitenformat, Tabstopps, usw. mit importiert werden.
Re: ASCII-Importfilter bauen
Verfasst: Di, 02.12.2008 10:37
von Karolus
Hallo
an verwertbaren Informationen lieferst du:
gsemmer hat geschrieben:....hat so 'ne crude Codetabelle wie
Ä=$01
Ü= $03
Fett= $8C
Space = $20, Tabspace = $60 (kann Tabstopps nur mit Pseudo-Leerzeichen anspringen)
usw. usf.
und möchtest daraus einen Filter analog zu:
gsemmer hat geschrieben:...genauso wie Filter für andere Dokumentformate (rtf, doc, wordperfect, etc.), bei denen Schriftart und -größe, Seitenformat, Tabstopps, usw. mit importiert werden.
gebaut kriegen ??
Ausser dir braucht das anscheinend sonst niemand ( auch Google weiss dazu nichts)
Daher solltest du vielleicht mal weitere Information zb. die komplette Codepage liefern
evtl. kannst auch mal 1 - 2 Beispielsdateien in ein .zip einpacken und hier anhängen. (mit sinnvollem Inhalt aber ohne private Daten)
Aber auch dann kann ich - (vielleicht ein anderer ? ) - dir keinen Importfilter schreiben, sondern nur eine umcodierte Textdatei die in Writer lesbar ist.
Gruß Karo
Re: ASCII-Importfilter bauen
Verfasst: Di, 02.12.2008 14:42
von gsemmer
Karolus hat geschrieben:Hallo
an verwertbaren Informationen lieferst du:
gsemmer hat geschrieben:....hat so 'ne crude Codetabelle wie
Ä=$01
Ü= $03
Fett= $8C
Space = $20, Tabspace = $60 (kann Tabstopps nur mit Pseudo-Leerzeichen anspringen)
usw. usf.
und möchtest daraus einen Filter analog zu:
gsemmer hat geschrieben:...genauso wie Filter für andere Dokumentformate (rtf, doc, wordperfect, etc.), bei denen Schriftart und -größe, Seitenformat, Tabstopps, usw. mit importiert werden.
gebaut kriegen ??
Ausser dir braucht das anscheinend sonst niemand ( auch Google weiss dazu nichts)
Daher solltest du vielleicht mal weitere Information zb. die komplette Codepage liefern
evtl. kannst auch mal 1 - 2 Beispielsdateien in ein .zip einpacken und hier anhängen. (mit sinnvollem Inhalt aber ohne private Daten)
Aber auch dann kann ich - (vielleicht ein anderer ? ) - dir keinen Importfilter schreiben, sondern nur eine umcodierte Textdatei die in Writer lesbar ist.
Gruß Karo
Ufffff ... eigentlich will ich ja "nur" Informationen zum Schreiben von Importfiltern.
Wenn ich guugele, dann bekomme ich nur Klagen, dass ein vorhandener Filter nicht funzt, oder Support für SVG-Filter, oder Import von PDFs, oder oder oder!
Ich bekomme aber keine Informationen, wie ich einen Filter schreibe ...
Re: ASCII-Importfilter bauen
Verfasst: Mo, 19.01.2009 22:40
von Dirk Reusswig
Ufffff ... eigentlich will ich ja "nur" Informationen zum Schreiben von Importfiltern.
Wenn ich guugele, dann bekomme ich nur Klagen, dass ein vorhandener Filter nicht funzt, oder Support für SVG-Filter, oder Import von PDFs, oder oder oder!
Ich bekomme aber keine Informationen, wie ich einen Filter schreibe ...gsemmer
Ich habe das hier in VB gebastelt:
Code: Alles auswählen
' Strukturbeschreibung für Microsoft Word Merge (Docmd.TransferText acExportMerge,...):
oo_ds.URL = "sdbc:flat:" & str_filepath
Set arr(0) = createStruct("com.sun.star.beans.PropertyValue", oocr)
arr(0).Name = "HeaderLines"
arr(0).Value = True
Set arr(1) = createStruct("com.sun.star.beans.PropertyValue", oocr)
arr(1).Name = "FieldDelimiter"
arr(1).Value = Chr(9)
Set arr(2) = createStruct("com.sun.star.beans.PropertyValue", oocr)
arr(2).Name = "StringDelimiter"
arr(2).Value = Chr(34)
Set arr(3) = createStruct("com.sun.star.beans.PropertyValue", oocr)
arr(3).Name = "Charset"
arr(3).Value = "iso-8859-1"
Set arr(4) = createStruct("com.sun.star.beans.PropertyValue", oocr)
arr(4).Name = "Extension"
arr(4).Value = "txt"
oo_ds.Info = arr()
Kannst Du damit was anfangen?
Schöne Grüße, Dirk