URL: https://www.overclockers.at/coding-stuff/text_in_file_speichern_mit_formatierung_81086/page_1 - zur Vollversion wechseln!
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
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
so eine aufgabe is mit praktisch jeder sprache lösbar - sogar javascript
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...
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...Zitat von atroxsehe ich das richtig ? im prinzip brauchst du nur eine textersetzung ?
was ist denn das zielformat (wegen deiner "formatierungszeichen" ?
@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.
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.
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...)
@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.
Hier nochmal das File voll mit Text.
click here
So schauts dann in der Software aus:
ahh.. na dann ist die ersetzung/erzeugung ja noch eine spur einfacher.
btw... ein hex editor verrät weitere details:
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.
@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.Zitat von watchout@cad: willst du jetzt von plain-text in das file format oder von file-format in plain-text??
naja, im vb geht das recht simpel - obwohl ich da immer durcheinander komm mit den zahlen...
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
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
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025