"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Text in File speichern mit Formatierung

Ctrl-Alt-Del 04.06.2003 - 11:28 1779 27
Posts

Ctrl-Alt-Del

Freund der 4 Ringe!
Avatar
Registered: Feb 2001
Location: Ländle
Posts: 3058
Sers Leute,

mal wieder eine Spezialaufgabe von mir: ;)
Ich sollte mittels Eingabemaske einen Text via Copy&Paste einfügen und dann
dieses mit einer speziellen Formatierung abspeichern.

Also eine 08/15 Eingabemaske mit Zeilenumbruch und ein kleines Menü mit Speichern unter... Befehl.
Der Text soll dann auf die Zeilen aufgegliedert, mit den Formatierungszeichen versehen und abgespeichert werden.

Anbei ein File mit einer Beispiel-Seite.
(Öffnen mit nem Editor - nicht Wordpad, Word oä.!)

Die File enthält keinen Virus öä!

Legende:

HA: Header Anfang
HE: Header Ende
-: Text
Z01A: Zeile 1 Anfang
Z01E: Zeile 1 Ende

Es dürfen auch nur diese Sachen verändert werden - die anderen Zeichen müssen bleiben!

Wie kann man so was einfach lösen?
Bisserl VB kann ich - sonst schauts eher düster aus. :(

Vorschläge?

greetz

CAD
999_30517.txt (downloaded 102x)

aNtraXx

trailer park king
Avatar
Registered: Apr 2002
Location: Linz
Posts: 6904
ich würds am ehesten mit delphi lösen. da geht das mit dem speichern unter und dergleichen mit nem mausklick und ner zeile source :).

bin @ work und firewall lässt den download nicht zu ;)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
so eine aufgabe is mit praktisch jeder sprache lösbar - sogar javascript :D

im prinzip musst du nur mit einer schleife jede zeile durcharbeiten und eine anfangs- und endmarke setzen, dazu lässt du einen zähler mitzählen - thats it

ps: die limitierung auf 100 zeilen is imho bissal blöd...

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
sehe ich das richtig ? im prinzip brauchst du nur eine textersetzung ?

was ist denn das zielformat (wegen deiner "formatierungszeichen" ?

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von atrox
sehe ich das richtig ? im prinzip brauchst du nur eine textersetzung ?

was ist denn das zielformat (wegen deiner "formatierungszeichen" ?
imho is das zielformat was er al txt geupped hat, und der text - die eingabe tät dort rein ghören wo jetzt die "-" sind...

Ctrl-Alt-Del

Freund der 4 Ringe!
Avatar
Registered: Feb 2001
Location: Ländle
Posts: 3058
@atrox

>im prinzip brauchst du nur eine textersetzung ? Richtig - bis auf die Umlaute die sollten in Zeichen umgewandelt werden.
Welches Zeichen für welchen Umlaut steht müsst ich noch checken.

>was ist denn das zielformat (wegen deiner "formatierungszeichen" ?
Das Zielformat ist ".vts" ein Teletext - Format.

Kann mir jemand bei sowas helfen?
Am liebsten in VB falls ich mal was ändern muss - ansonsten ist die Sprache egal.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
unter unix währe das wohl mit einem shell script oder wenigen zeilen perl erledigt, aber in vb ist es auch zu lösen, wenn auch unter etwas größeren mühen (weil ohne regex).

schau dir also mal die vb string funktionen an, und fang dein programm an, wenns probleme gibt, melde dich wieder.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
im prinzip hast du zwei möglichkeiten:

a) du synthetisierst die datei direkt aus deinem programm: dh du gibts file-header, text-header (HA-AE) aus und dann für jede zeile des eingabetextes ZxxA, gefolgt von (max?) 32 zeichen und dann wieder ein ZxxE, gefolgt von einem zeilenende-zeichen.

b) du nimmst die eine datei als vorlage und füllst sie aus: dazu kopierst du solange zeichen aus der vorlage bis du auf ein '-' stößt. für jedes '-' kopierst du ein zeichen aus dem text in die zieldatei; bis das erste non-'-' zeichen auftauchst, in dem fall movest du im eingabetext bis zum nächsten zeilenanfang, und fängst die schleife oben wieder an (dh. solange zeichen aus vorlage kopieren, bis ein '-' auftaucht.

--
ich habe mal ein ganz ähnliches programm für die anzeigetafel im praterstadion gemacht. diese wird von einem PC/XT gesteuert, weil sich die steckkarte nicht mit modernen ISA-bussen verträgt. um nun sportergebnisse bei diversen veranstaltungen (nicht alle) automatisiert anzuzeigen, werden die daten exportiert und mein programm setzt sie - schön formatiert - in die binärfile-vorlage des antiken ansteuerungsprogrammes ein. (dabei war zu beachten, daß es auch unterschiedliche schriftgrößen gibt, usw...)
Bearbeitet von atrox am 05.06.2003, 01:39

Ctrl-Alt-Del

Freund der 4 Ringe!
Avatar
Registered: Feb 2001
Location: Ländle
Posts: 3058
@atrox

Ups da gibts ein kleines Kommunikationsproblem.
Das HA,HE,Z01A, Z01E steht für mich/euch
- sind jedoch Bestandteile der Zeilen - sprich diese sollten auch durch den Text ersetzt werden.
Der Rest - also die Zeichen müssen stehen bleiben.

Ctrl-Alt-Del

Freund der 4 Ringe!
Avatar
Registered: Feb 2001
Location: Ländle
Posts: 3058
Hier nochmal das File voll mit Text.

click here

So schauts dann in der Software aus:
click to enlarge

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
ahh.. na dann ist die ersetzung/erzeugung ja noch eine spur einfacher.

btw... ein hex editor verrät weitere details:
oc_cad_999a.gif

erste markierung (bis zum L) ist offenbar der file-header, mit der zielseite in den ersten zwei bytes.
alle weiteren markierungen zeigen, daß die textzeilen offenbar binär durchnummeriert sind.
Bearbeitet von atrox am 05.06.2003, 10:35

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
@cad: willst du jetzt von plain-text in das file format oder von file-format in plain-text??

Ctrl-Alt-Del

Freund der 4 Ringe!
Avatar
Registered: Feb 2001
Location: Ländle
Posts: 3058
Zitat von watchout
@cad: willst du jetzt von plain-text in das file format oder von file-format in plain-text??
Zuerst einmal nur Text->File - umgekehrt vielleicht später mal.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
naja, im vb geht das recht simpel - obwohl ich da immer durcheinander komm mit den zahlen... :D

var0 = "bla... header"&eingabe
counter=0
while inStr(var0, chr(13)&chr(10))>0
(
inStr(var0, chr(13)&chr(10)) -> pos
left(var0,pos+-1) -> var1
right(var0,pos+2|3) -> var2
var1 & counter & var2 -> var0
counter=counter+1
)

also irgendsowas halt

edit: is nur grob, und da ich schon lang nimmer die functions auswendig kann müssen die nicht unbedingt stimmen, die parameterreihenfolge stimmt scho garnet... ;)

edit2: ich seh grad dass das ja ein fixed format is, da musst du u.U. die zeilen mit blanks oder so auffüllen (siehe funktion "string") also irgendwas einbaun wie
if newpos-oldpos<40 (stimmt 40?) then
blabla
end if
Bearbeitet von watchout am 05.06.2003, 14:47

Ctrl-Alt-Del

Freund der 4 Ringe!
Avatar
Registered: Feb 2001
Location: Ländle
Posts: 3058
Oweija Leute... oag was man in zwei Jahren alles vergessen kann! :(

Kann mir wer helfen und den Code nennen den ich beim Button einfügen muss damit er den Inhalt des Textfeldes (text1)
als Textfile abspeichert - diese jedoch nicht txt sondern ".vts" nennt.
Die Formatierung sollte auch eingehalten werden und die Datei nicht nur irgendwo hin geschmissen werden sondern die übliche "Speichern unter" Auswahl erscheinen.

Es gibt für einen passenden Code auch eine kleine Gegenleistung - müsste man dann per PM ausmachen.

thx im Voraus,
greetz

CAD

click to enlarge click to enlarge click to enlarge click to enlarge
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz