Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Input / Output

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.01.2005, 02:57 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Hi!

Ich verstehe es nicht..
Ich suche eine kurze schnelle möglichkeit dateien in einem textfeld zu öffnen (anzuzeigen) und wieder zu speichern. ich habe folgendes:


Visual Basic:
Private Sub Form_Load()
Open "C:\Test.txt" For Input As 1
Input #1, a
Close 1
Text1.Text = a
End Sub



Und das klappt sogar. open, input [number][var] und wieder closen...
dann den text in Text1 anzeigen..
jetz willich, dass der beim Text1_Change den text in "C:\Test.tmp" speichert...


Visual Basic:
Private Sub Text1_Change()
Open "C:\Test.tmp" For Output As 1
Print #1, a
Close 1
End Sub



das sollte eigentlich klappen, geht aber nich... ich kann zwar was schreiben aber dann is in der Test.tmp immernoch kein text... doch... zwei freizeilen!?
ka warum..
--
Mit freundlichen Grüßen
Audron, audron@sxene.de

Dieser Post wurde am 08.01.2005 um 02:58 Uhr von Audron-AT-www editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.01.2005, 10:02 Uhr
Pablo
Supertux
(Operator)


Ich würde so machen

Visual Basic:
Private Sub Text1_Change()
Open "C:\Test.tmp" For Output As 1
Print #1, Text1.Text
Close 1
End Sub



Mach leiber es dort nicht, das Problem ist dass je größer der Text, desto langsamer wird dein Programm, da nach jede kleine Änderung der gesamte Text gespeichert wird.

Zum Dateieinlesen reciht ein Input #1, a nicht, weil das nur die erste Zeile liest und nicht alle. Pack das in eine while Schleife bis es kein Input mehr gibt und dann Text1.Text = text1.Text & vbCrLf & a
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 08.01.2005 um 10:05 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.01.2005, 15:54 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Inner While Schleife müsste ich doch gucken ob in dem Textfeld gelesen wird oder nicht!?!?


Visual Basic:
While Text1.Text Wird noch geschrieben
a = Text1.Text
Wend

If Text1.Text Schreibenfertig then Save()


--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.01.2005, 16:20 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Naja, hab jetz ein "Save and exit" button gemacht...

dazu noch eine frage.

es ist so etwas wie ein kleines notiz proggi, das man doppelt anklickt, der den text aus "CProgram Files\sXSpeedNote\Note.sn" in txtText läd. dann bei enter druck soll der den default button "save and exit" aktivieren.

das klappt soweit, ich bräuchte dann noch einen tipp...

wenn man das programm zum ersten mal startet, existiert die "CProgram Files\sXSpeedNote\Note.sn" ja nicht. also soll der die machen.
es existiert aber der ordner sXSpeedNote nicht. und vielleicht der ordner Program Files nicht.
Der soll die machen.


Visual Basic:
In Form_Load:

If LenB("C:\Program Files\") < 1 Then MkDir ("C:\Program Files\")
If LenB("C:\Program Files\sXSpeedNote\") < 1 Then MkDir ("C:\Program Files\sXSpeedNote\")
If LenB("C:\Program Files\sXSpeedNote\Note.sn") < 1 Then ZumErstenMalSpeichern

Public Sub ZumErstenMalSpeichern
Open "C:\Program Files\sXSpeedNote\Note.sn" For Output As 1
Print #1, txtText.Text
Close 1
End Sub



das klappt aber nicht richtig. der tut so als ob alle ordner existieren würden
--
Mit freundlichen Grüßen
Audron, audron@sxene.de

Dieser Post wurde am 08.01.2005 um 16:21 Uhr von Audron-AT-www editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.01.2005, 18:34 Uhr
FlAsH
keine Ahnung


Wenn ich richtig verstanden habe, musst du noch einen Ordner erstellen?!


Visual Basic:
Private Declare Function MakePath Lib "imagehlp.dll" _
  Alias "MakeSureDirectoryPathExists" _
  (ByVal lpPath As String) As Long


Und den orner erstellst du so

Visual Basic:
Dim Resultat As Long
Dim Ordner As String
Ordner = "C:\Program Files\sXSpeedNote\"
Resultat = MakePath(myOrdner)


Dieser Post wurde am 08.01.2005 um 18:34 Uhr von FlAsH editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.01.2005, 18:45 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


erstellt man nen ordner nich mit MkDir?

ausserdem mussich ja gucken dass der den neuen ordner und die datei neu macht WENN die nochnicht existiert!
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.01.2005, 18:55 Uhr
FlAsH
keine Ahnung


Oha, da hab ich was falsches verstanden kann ja mal passieren...
Und das mit mkdir werde ich mir merken!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.01.2005, 11:10 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


aaber die MakePath funktion ist gut.
der macht den ordner, überschreibt den vorherigen nicht. und wenn der ordner schon existiert dann machter garnichts.

das ist die funktion die ich gebraucht hab

dankö
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.01.2005, 10:42 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


achso, wenn die datei nicht existiert soller die nicht laden... die LenB() funktion klappt da nicht... was kannich da machen?
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
15.01.2005, 22:04 Uhr
FlAsH
keine Ahnung


überprüfen ob existiert und wenn sie existiert laden ansonsten nicht!

Visual Basic:
Public Function FileExists(ByVal sFile As String) As Boolean

  'sFile=Pfad

  Dim Size As Long
  On Local Error Resume Next
  Size = FileLen(sFile)
  FileExists = (Err = 0)
  On Local Error Goto 0

'anwenden:
If FileExists = True Then
'laden
Else
'nicht laden
End If
End Function


Dieser Post wurde am 15.01.2005 um 22:06 Uhr von FlAsH editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: