Text in File speichern mit Formatierung
Ctrl-Alt-Del 04.06.2003 - 11:28 1780 27
Ctrl-Alt-Del
Freund der 4 Ringe!
|
*push* Helfts ma bitte!
|
Ctrl-Alt-Del
Freund der 4 Ringe!
|
Jetzt bin ich schon mal ein bisschen weiter. Der Text wird gespeichert - nur die Formatierung stimmt noch nicht. Proggy: So wirds exportiert: Aber so sollte es aussehen: Komplettes File Und hier der derzeitige Code: Kann mir bitte jemand bei der Formatierung des Ausgangsformates helfen?
|
H.E.N.K
iam a l4hm3 nubi © DAO
|
in perl würd ich einfach dir /n mit chomp weghaun .. aber in vb .. kA .. sry
|
Ctrl-Alt-Del
Freund der 4 Ringe!
|
Durch diese Zeile funzt nun auch der Zeilenunbruch incl. dem Platzhalter. Nur wie kann ich ihm beibringen dass er zwischen der Zeile 9 und 10 kein Zeichen hin setzt sondern nur eine Stelle frei lässt? Und zudem sollte am Anfang noch folgendes hin: ¹™à___ Underline steht in diesem Fall für Freistellen -> 3 Stück. //edit: Mit dieser Erweiterung bekomme ich folgendes raus: "¹™à test" Also 8 Leerstellen zu viel!
Bearbeitet von Ctrl-Alt-Del am 09.07.2003, 14:25
|
Ctrl-Alt-Del
Freund der 4 Ringe!
|
Ok der Dateianfang kann ich von der ToDo List streichen. ;-) Print #file, "¹™à " + txtvar
Bleibt noch das Problem mit dem Abstand zw. Zeile 9 und 10 sowie dem "" am Ende.
|
Ctrl-Alt-Del
Freund der 4 Ringe!
|
Kommando zurück! So funzt das nicht. Das Programm für das die vts Seiten bestimmt ist frisst die Unterschiede in den Dateien (nur im Hex-Editor sichtbar) nicht. Original: Falsch: Was nun? Vorlage hernehmen und den Text in die gekennzeichneten Lücken setzen - nur wie?
|
atrox
in fairy dust... I trust!
|
alle weiteren markierungen zeigen, daß die textzeilen offenbar binär durchnummeriert sind. ich hätte gesagt, der naive weg wäre, du gehst zeilen- oder zeichenweise vor: 1)schreibe header 2)schneide eine zeile aus textfeld, falls vorhanden, (ansonsten füllzeile?) 3)kürze evt die zeile, bzw fülle sie auf 4)schreibe die zeilennummer binär 5)schreibe die zeile 6)gehe zu 2, beachte zeilenzähler (oder whatever) binärzeichen erzeugst du am besten mit CHR()
|
Ctrl-Alt-Del
Freund der 4 Ringe!
|
@atrox hmmm klingt leicht *räusper* Wie wärs wenn man eine Vorlage hernimmt und den Text reinsetzt? Habs mal händisch probiert - funzt. Die Vorlage Vorgehensweise: 8 Stellen rücken (n. rechts natürlich) 39 Textzeichen einfügen 1 Stelle rücken 1 x Leerzeichen 39 Textzeichen 1 Stelle rücken 1 x Leerzeichen 39 Textzeichen 1 Stelle rücken 1 x Leerzeichen 39 Textzeichen . . . . Den Tab-Sprung (jep ist gar keine Leerstelle) zw. 9 und 10 muss nicht extra beachtet werden da es ja sowieso auch dank "1 Stelle rücken" übersprungen wird. Hat wer einen Ansatz für mich wie man das realisieren kann?
|
atrox
in fairy dust... I trust!
|
das mit der vorlage einsetzen hab ich ja schon vor einem monat geschrieben.
das mit dem leerzeichen einfügen vor jeden "39 zeichen", verstehe ich nicht ganz.
|
Ctrl-Alt-Del
Freund der 4 Ringe!
|
>das mit der vorlage einsetzen hab ich ja schon vor einem monat geschrieben. i know... Schande über mich.... >das mit dem leerzeichen einfügen vor jeden "39 zeichen", verstehe ich nicht ganz. Ergibt dann einfach eine Leerstelle vor jedem Satz - zu Formatierungszwecken später im Programm. (Farbgebung etc.) Hatte ich leider zuerst vergessen! Würdest du mir bei der Erstellung helfen? Es ist ja nicht so dass ich mich nicht bemühe - aber najo ich komm auf keinen grünen Zweig... ist zuwenig mein Gebiet.
|
watchout
Legendundead
|
newtext = header
for i=1 to int(dim(text)/39) step 1
newtext = newtext+split(i*39,(i+1)*39,text)+char(i)
end for
so, die funktionen kann ich nimmer so, also "int" musst du durch die rundungsfunktion ersetzen welche _immer_ aufrundet split heisst glaub ich net wirklich so, und die zahlen stimmen glaub ich auch net ganz, kommt drauf an welche parameter die funktion erwartet
|
Ctrl-Alt-Del
Freund der 4 Ringe!
|
Derzeitiger Code:
------------------------------------------------ Private Sub Label2_Click() Dim zeile() As String Dim file As Integer Dim header As String header = Chr(185) & Chr(153) & Chr(23) & Chr(224) & " " zeile = Split(Text1.Text, vbCrLf) For i = 0 To UBound(zeile) - 1 zeile(i) = " " & Left(zeile(i), 39) If Len(zeile(i)) < 40 Then zeile(i) = zeile(i) & Space(40 - Len(zeile(i))) End If Next CMDialog1.Filter = "Teletext Files (*.vts)|*.vts" CMDialog1.FilterIndex = 1 CMDialog1.Action = 2 file = FreeFile Open CMDialog1.FileName For Output As #file Print #file, header; For i = 0 To UBound(zeile) - 2 Print #file, zeile(i) & Chr(i + 1); Next Print #file, zeile(UBound(zeile) - 1) & Chr(151); Close #file End Sub ------------------------------------------------
Jetzt fehlt eigentlich nur noch etwas und zwar dass beim abspeichern immer soviel Zeilensprünge (Enter) bis zur 23 bzw. eigentlich 24sten Zeile (damit die 23ste auch gespeichert wird) erfolgen.
|
watchout
Legendundead
|
Derzeitiger Code:** Jetzt fehlt eigentlich nur noch etwas und zwar dass beim abspeichern immer soviel Zeilensprünge (Enter) bis zur 23 bzw. eigentlich 24sten Zeile (damit die 23ste auch gespeichert wird) erfolgen. irgendwie bist du bissal umständlich... trotzdem versteh ich nicht wo du zur 23. zeile willst??
|