ASCII-Importfilter bauen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: ASCII-Importfilter bauen

Re: ASCII-Importfilter bauen

von Dirk Reusswig » Mo, 19.01.2009 22:40

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

Re: ASCII-Importfilter bauen

von gsemmer » Di, 02.12.2008 14:42

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

von Karolus » Di, 02.12.2008 10:37

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

von gsemmer » Di, 02.12.2008 08:53

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

von Karolus » Fr, 28.11.2008 19:53

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

von gsemmer » Fr, 28.11.2008 19:16

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

von Karolus » Fr, 28.11.2008 17:21

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

von gsemmer » Fr, 28.11.2008 16:24

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

ASCII-Importfilter bauen

von gsemmer » Fr, 28.11.2008 13:38

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

Nach oben