Text in File speichern mit Formatierung - Seite 2

Seite 2 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/text_in_file_speichern_mit_formatierung_81086/page_2 - zur Vollversion wechseln!


Ctrl-Alt-Del schrieb am 09.07.2003 um 08:16

*push*
Helfts ma bitte! :)


Ctrl-Alt-Del schrieb am 09.07.2003 um 13:07

Jetzt bin ich schon mal ein bisschen weiter.
Der Text wird gespeichert - nur die Formatierung stimmt noch nicht.

Proggy:
click to enlarge

So wirds exportiert:
click to enlarge

Aber so sollte es aussehen:
click to enlarge
Komplettes File

Und hier der derzeitige Code:
click to enlarge

Kann mir bitte jemand bei der Formatierung des Ausgangsformates helfen?


H.E.N.K schrieb am 09.07.2003 um 13:30

in perl würd ich einfach dir /n mit chomp weghaun .. aber in vb .. kA .. sry


Ctrl-Alt-Del schrieb am 09.07.2003 um 14:12

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.

click to enlarge

//edit:
Mit dieser Erweiterung bekomme ich folgendes raus:
"¹™à test"
Also 8 Leerstellen zu viel! :confused:


Ctrl-Alt-Del schrieb am 09.07.2003 um 14:48

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 schrieb am 09.07.2003 um 15:13

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:
click to enlarge

Falsch:
click to enlarge

Was nun?
Vorlage hernehmen und den Text in die gekennzeichneten Lücken setzen - nur wie? :(


atrox schrieb am 09.07.2003 um 15:42

Zitat von atrox
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 schrieb am 09.07.2003 um 15:58

@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 schrieb am 09.07.2003 um 16:32

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 schrieb am 09.07.2003 um 16:40

>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 schrieb am 10.07.2003 um 16:54

Code:
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 schrieb am 11.07.2003 um 11:25

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 schrieb am 11.07.2003 um 16:34

Zitat von Ctrl-Alt-Del
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??




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025