Texteditor

JackyD

Erfahrenes Mitglied
Hallo @ all,
Ich habe ein Textfeld mit Multiline=true. Wenn aber jetzt der Text mehr wird als die Länge des Textfeldes möchte ich mit einem seitlich angebrachten Scrollbalken den Inhalt hoch und runter scrollen können.
PHP:
Private Sub cmdoeffnen_Click()
On Error Resume Next
Dim DateiNr As Integer
Dim Temp As String
Dim Name As String

DateiNr = FreeFile
Name = oeffnen.FileName

Open Name For Input As DateiNr

Input #DateiNr, Temp
txtaus.Text = Temp

Close DateiNr
End Sub
Wenn ich über den CommonDialog öffnen wird immer nur die erste Zeile des Textes aus der Textdatei ausgelesen und dargestellt. Wie kann ich es machen, dass alle Zeilen ausgelesen werden und im Textfeld ausgegeben werden?

Danke schon mal im Vorraus.
 
Input liest grundsätzlich nur eine Zeile aus. Verwende einfach Get statt Inputt, dann wird der gesamte Inhalt der Datei ausgelesen:

Code:
Get #DateiNr, , Temp

Oder du verwendest Input so lange, bis du das Ende der Datei erreicht hast:
Code:
While Not EOF(DateiNr)
Input #DateiNr, Temp
txtaus.Text = txtaus.Text & Temp
Wend
 
Mit der get Methode lädt er gar nichts aus der Textdatei. Wenn ich wieder auf input ändere lädt es wieder die erste Zeile. Bei open hab ich auch schon alle 4 enstellungen für Input probiert geht aber auch net.
 
Hi,
zu dem einlesen kann ich dir nicht helfen, aber mit dem Scrollen!
Wenn du es dir einfach machen willst, benutzt du eine RichTextBox. Aber leider musste ich feststellen, dass dann das Programm nicht auf jedem PC läuft.
Daher müsstest du selberprüfen, wieviele Zeilen deine Textbox verträgt und abwann du die Scrollbalken aktivierst.

mfg
 
Naja, eigentlich müsste das mit dem Get funktionieren.....Ich hab hier aber noch eine andere Möglichkeit:
Code:
Dim strDateipfad As String
Dim intNummer As Integer
 
strDateipfad = "D:\Test.txt"
intNummer = FreeFile	
Open strDateipfad For Input As intNummer	 
txtaus.Text = Input(LOF(intNummer), intNummer)		
Close intNummer
LOF liefert die Länge einer Datei in Bytes.
 
Danke @ Shakie so gehts jetzt.
Ich möchte noch, damit, wenn man auf einen Menüeintrag klickt, dass dann der php Tag oder das HTML grundgerüst ins Textfeld geschrieben wird. Das hab ich jetzt mal probiert. Allerdings wird es nur ans ende angehängt, ich hätte gern, damit es da eingefügt wird, wo der Focus ist und es wäre schön, wenn das auch gleich formatiert passiert, momentan kommt das ganze HTML grundgerüst in einer Zeile.
Ich habe einfac in eier Prozedur angegeben:
PHP:
txtaus.Text=txtaus:Text + "<?php ?>"
&
PHP:
txtaus.Text=txtaus:Text + "<html><head>....</html>"
 
Hast du die Eigenschaft "Multiline" bei der Textbox auf True gestellt? Das musst du tun damit mehrzeiliger Text überhaupt zugelassen ist.

Das einfügen eines Textes kannst du so realisieren:
Code:
Dim strEinfügen As String
strEinfügen = "Dieser Text soll eingefügt werden."
'Position ermitteln, an der der Text eingefügt werden soll:
Dim lngPosition As Long
lngPosition = Text1.SelStart
'neuen Text der Textbos zusammenbasteln (=zusätzlichen Text einfügen):
Dim strNeuerText As String
strNeuerText = Mid$(Text1.Text, 1, lngPosition) & strEinfügen & Mid$(Text1.Text, lngPosition + 1)
'neuen Text in der Textbox ausgeben:
Text1.Text = strNeuerText
Text1.SelStart gibt die Position des Cursors in der Textbox aus.

Oder du kannst auch gleich alles etwas kompakter realisieren:
Code:
Dim strEinfügen As String
strEinfügen = "Dieser Text soll eingefügt werden."
 
Text1.Text = Mid$(Text1.Text, 1, Text1.SelStart) & strEinfügen & Mid$(Text1.Text, Text1.SelStart + 1)
 
Hallo das funktioniert sehr gut. Wie kann ich das formatieren?
Momentan wird alles in einer Zeile ausgegeben, ich hätte es aber gern, wenn es so ausgegeben wird:
PHP:
<html>
<head>
.......
</html>
 
Zurück