VB zeichen auslesen

Borsych

Grünschnabel
Hallo leute
stehe vorm volgenden Problem:
ich schreibe ein programm mit dem man benutzer meines BSCW servers löschen kann. Die namen werden aus einer liste kopiert, in ein textfeld eingefügt und das programm erstellt aus einem vorgegeben befehl (sagen wir mal "löschen") und den namen eine .bat datei. So die idee.
Nun das problem. Wie list man zeichen aus? ich habe mir gesacht, da die benutzernamen durch kommas getrennt sind, soll das programm in einer schleife den befehl (löschen) + den text bis zum nächsten komma in ein arrey speichern und anschließend werden die werte des arreys in der .bat datei gespeichrt. Da ich mit dem programmieren aber erst vor kurzem angefangen habe weiss ich nicht wie man zeichen ausliest oder ob es da eine bessere lösung gibt.
hilfe! :rolleyes:
 

DrSoong

Iss was, Doc!
Borsych, erstmal möchte ich dich auf die Netiquette, insbesonders auf Punkt 15 hinweisen. Eine durchgängige Kleinschreibung macht das ganze Konglomerat doch etwas unlesbar. Ich würde in Zukunft darauf achtgeben, da die Netiquette doch ein wichtiger Punkt ist.

Zu deiner Frage, im Forum hier finden sich über die Suche einige Beispiele zum Thema Einlesen von Daten, z.B. hier findest du etwas.

Der Vorteil beim binärem Einlesen ist, dass du den gesamten Text in einem String hast, mit Split() kannst du ihn dann z.B. am Komma trennen. Du kriegst dann ein Array mit deinen Benutzernamen, die einzelnen Arrayeinträge kannst du dann ganz leicht auslesen bzw. ändern.


Der Doc!
 

Borsych

Grünschnabel
Nabend,

jau, tut mir leid, sieht echt nicht schön der Text. Werde jetzt mehr darauf achten.

Habe hier und da rumgestöbert und das gefunden. Als ich jedoch versucht habe der Variable "s" aus deinem Quellcode den wert einer Textbox zuzuweisen, hat der mich mit Fehlermeldungen bombardiert. Das Problem war, das ich bei der Deklaration nicht Option Explicit an hatte.

Meine Frage jetzt: was genau macht Option Explicit? Ist ja schön, dass es jetzt geht, nur möchte auch gerne wissen warum.

PS: das hier aus deiner Antwort war mir ein wenig zu hoch :) Me = in Lernphase^^
 

DrSoong

Iss was, Doc!
Wenn du das Option Explicit am Anfang deines Codes hast bedeutet das, dass du deine Variablen im Projekt deklarieren musst, sonst kriegst du eine Fehlermeldung, wenn du nicht deklarierte Variablen verwendest.

OK, klingt erstmal eher nach Verschlechterung, hat aber einen tieferen Sinn. So behältst du den Überblick über deine Variablen, da du die ja deklariert hast.

Anfängern empfehle ich gerne mal den VB-Kurs von Rolf Hirte, ist für den Anfang ein wirklich guter Einstieg.


Der Doc!
 

Borsych

Grünschnabel
Hallo,

danke für die antwort und für die Tips.

Mit dem Skript von Rolf Hirte arbeite ich schon von anfang an. Trotzdem bleiben da bei mir noch Fragen offen.

Ich hab jetzt mein Programm fertig und wollte da nur noch eine "Speichern unter" Funktion einbauen. Ich wollte, dass das Programm, das was in der Textbox steht, in eine .bat Datei abspeichert. Doch wenn ich mir den Skript anschaue versteh ich den eigenltichen Speichervorgang nicht. Und ich hab das ganze bei mir eingefügt zum Testen, Fehlermeldung bei der 6. Zeile (mit dem Kommentar: eigentliche Speicherroutine). Ich versteh auch nicht wie der das gemeint haben könnte. Wenn ich mir die anderen Beispiele angucke, siehts ja auch völlig anders.

ok, jetzt hab ichs doch....irgendwie. Mein Problem ist jetzt nur das die Dateien, die gespeichert werden, leer sind.

Bitte um Hilfe:rolleyes:
 
Zuletzt bearbeitet:

Borsych

Grünschnabel
Quelltext:

Code:
Option Explicit
Dim eingabe, voll As String
Dim eArray() As String
Dim Kanal As Integer
Dim n As Integer

Private Sub Command1_Click()

eingabe = Text1.Text
eArray() = Split(eingabe, ",", -1, vbTextCompare)
For n = 0 To UBound(eArray)
   eArray(n) = "call C:\BSCW\server\bsadmin rmuser -n -b -f " + eArray(n)
Next n
   Text1.Text = ""
   Text1.Text = "@echo off"
For n = 0 To UBound(eArray)
   Text1.Text = Text1.Text + Chr(10) + eArray(n)
Next n
   Text1.Text = Text1.Text + Chr(10) + "pause" + Chr(10) + "exit"


End Sub
Sub speichern(pidar As String)
Kanal = FreeFile
Open pidar For Output As #Kanal
voll = Text1.Text
Print #1, voll
End Sub

Private Sub speichern_unter_Click()
On Error GoTo ErrH
    
    CmDialog1.Flags = &H2&
    
    CmDialog1.Filter = "Dateien (*.bat)|*.bat"
    
    CmDialog1.Action = 2
    
    speichern (CmDialog1.FileName)
    
Ausgang:
Exit Sub
    
ErrH:
MsgBox "So ein Mist", 33, "evtl. Laufwerk nicht vhd."
    
Resume Ausgang
End Sub
 

ronaldh

Erfahrenes Mitglied
Dein Fehler liegt in der Routine "Speichern", denn Du machst die Datei nicht wieder zu. Daher ist sie, so lange das Programm läuft, 0 Byte groß.

Code:
Sub speichern(pidar As String)
   Kanal = FreeFile
   Open pidar For Output As #Kanal
   voll = Text1.Text
   Print #Kanal, voll
   Close #Kanal
End Sub

Außerdem öffnest Du die Datei mit einer variablen Filenummer (#Kanal), schreibst aber in #1.