|
|
|
|
Textverabeiten |
kilone
Senior Member
Dabei seit: 13.09.2001
Beiträge: 320
|
|
Textverabeiten |
|
Hi ich möchte ein programm schreiben wo ein user eine Texteingabe machen kann mit beliebiger mänge. Das Prog soll dann nach immer ca 40 Zeichen eine Zeilen umbruch setzen und dies dann in einer txtdatei speichert
beispiel
Ganz viel langer txt sage mal hier ist das 40 zeichen bla bla
text.txt
Ganz viel langer txt sage mal hier ist das 40
zeichen bla bla
hoffe mir kann einer helfen danke schon mal
cu
Kilone
__________________ Klick mich fest
|
|
23.06.2004 17:46 |
|
|
*.rar
Junior Member
Dabei seit: 13.10.2003
Beiträge: 103
Herkunft: Rarlabs
|
|
Ich gehe jetzt mal von Visual Basic dot NET aus.
Realisieren würde ich die Form so:
Eine Textbox mit einer deckungsgleichen Schriftart (zum Beispiel Courier New), damit du die Textbox so breit ziehen kannst, das die Benutzereingabe für eine Zeile immer 40 Zeichen hat. Dann sparst du dir das Speichern nach 40 Zeilen im Quellcode.
Den Dateizugriff würde ich so realisieren:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
Imports System.IO (ganz oben)
Dim Datei As String = "C:\Textdatei.txt"
Dim fs as Filestream = File.OpenWrite(Datei)
Dim sw As New StreamWriter(fs)
sw.Write(Textbox1.Text)
sw.close
|
|
Alternativ kannst du dann auch den Dateinamen mit einem SaveFileDialog festlegen. Das ist dann so ein "Speichern unter..."-Dialog, wie du ihn aus jeder Microsoft Anwendung kennst. Wäre nur etwas komfortabler.
Falls du mit dem Beispiel aus .NET nichts anfangen kannst, hätte es nicht geschadet deine VB Version anzugeben
Generell einfach mal alle Infos für die FileStream Klasse suchen, die du finden kannst. Da ist alles mit Dateizugriffen drin. Lässt sich sehr komfortabel mit arbeiten (File.Create(Dateiname), File.Delete(Dateiname), File.Exists(Dateiname), File.Copy(Quelldatei, Zieldatei)).
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von *.rar: 23.06.2004 18:08.
|
|
23.06.2004 18:06 |
|
|
Medusa
Senior Member
Dabei seit: 10.09.2001
Beiträge: 356
Herkunft: ...von da, wo mein Haus wohnt...
|
|
willst du genau nach dem 40sten Zeichen umbrechen, oder dann ab dem letzten Leerzeichen?
Du musst, wenn du die Zeilen speichern willst, das umbrechen per code realisieren. Denn das automatische Umbrechen in einer Textbox beeinflusst den String, der in der Textbox steht nicht, dh du weißt beim Schreiben in die Datei nicht, wo umgebrochen wurde.
Versuchs mal so
code: |
1:
2:
3:
4:
5:
6:
7:
|
function umbrechen(byval eingabe as string) as string
dim ausgabe as string
for i = 1 To len(eingabe) Step 40
ausgabe = ausgabe & Mid(eingabe, i, 40) & vbnewline
next i
umbrechen=left(ausgabe, len(ausgabe)-2) 'Ohne die letzten beiden Zeichen, damit das letzte Umschalten weggelassen wird.
end sub |
|
__________________ Grüßle, Medi
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Medusa: 23.06.2004 23:07.
|
|
23.06.2004 19:47 |
|
|
Medusa
Senior Member
Dabei seit: 10.09.2001
Beiträge: 356
Herkunft: ...von da, wo mein Haus wohnt...
|
|
Ich habs mit ein paar Versuchen erfolgreich getestet, kann aber net 100% sagen, ob's funktioniert. Wahrscheinlich sehr unelegant geschrieben
Die Funktion zum Umbrechen:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
|
Function Umbrechen(ByVal strEingabe As String, byval intLen as integer) As String
Dim ExitFor As Boolean
Dim strAusgabe As String
Dim c As Integer, i As Integer
strAusgabe = strEingabe
Do
ExitFor = False
For i = 1 To Len(strAusgabe)
If Mid(strAusgabe, i, 2) = vbNewLine Then c = 0: i = i + 1 Else c = c + 1
If c = intLen+1 Then
For j = i To i -intLen Step -1
If Mid(strAusgabe, j, 1) = " " Then
strAusgabe = Left(strAusgabe, j - 1) & vbNewLine & Right(strAusgabe, Len(strAusgabe) - j)
ExitFor = True
Exit For
ElseIf Mid(strAusgabe, j, 2) = vbNewLine Or j = i -intLen Then
strAusgabe = Left(strAusgabe, i - 1) & vbNewLine & Right(strAusgabe, Len(strAusgabe) - i + 1)
ExitFor = True
Exit For
End If
Next j
If ExitFor Then Exit For
End If
Next i
If i = Len(strAusgabe) + 1 Then Exit Do
Loop
Umbrechen = strAusgabe
End Function |
|
Der erste Parameter ist der Text und der zweite die Zeilenlänge (hier: 40)Und dann zum schreiben in die Datei einfach das hier:
code: |
1:
2:
3:
|
open "datei.txt" for output as #1
print #1, umbrechen(textfeld.text, 40)
close #1 |
|
Kannst ja testen, mit
code: |
1:
|
msgbox Umbrechen("Hallo, das ist ein Test-Text !!!", 10) |
|
__________________ Grüßle, Medi
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Medusa: 23.06.2004 23:36.
|
|
23.06.2004 23:33 |
|
|
kilone
Senior Member
Dabei seit: 13.09.2001
Beiträge: 320
Themenstarter
|
|
VIELEN DANK obs unelegant ist is mir egal
ich wede das morgen gleich testen und sag dann obs bei mir auch geht. Danke noch mal
__________________ Klick mich fest
|
|
24.06.2004 00:59 |
|
|
|
|
|
|