Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 04.09.2011, 16:58 Titel: Problem mit If und Subs |
|
|
Hallo Liebe Programmierer, ich wende mich heut an euch weil ich ein problem mit einer sub oder if frage habe ..
ich moechte das mal anhand eines beispiels verdeutlichen und darunter mein bisheriegen code setzen ..vielleicht wisst ihr ja was ich meine und knnt mir helfen
BSP:
Code: |
tsukasa> chfile test.bas
tsukasa>
|
nur sollte da jetzt eben die entsprechende ausgabe kommen ..schaut euch wie gesagt den bisherigen code an :
Code: |
Do
Print Environ("username"); ">";
Line Input whatdoing
If whatdoing = "dirscan" Then Call dirscan
If whatdoing = "dateiscan" Then Call dateiscan
If whatdoing = "cls" Then Cls
If whatdoing = "chfile" Then
Else
EndIf
If whatdoing = "exit" Then End
Loop
|
und hier die sub..
Code: |
Sub chfile (ByRef filename As String)
Dim datum As Double
If FileExists(filename) Then
d = FileDateTime (filename)
Print "letzte aenderung:"
PRINT FORMAT(FileDateTime(filename), "dd.mm.yyyy, hh:mm:ss" )
Else
Print "Datei wurde nicht gefunden"
EndIf
End Sub
|
und danke schon einmal im vorraus |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 04.09.2011, 18:17 Titel: |
|
|
In deinem Beispiel hast du 'chfile test.bas ' eingegeben, abfragen tust du aber 'If whatdoing = "chfile"'. Siehst du das Problem? |
|
Nach oben |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 04.09.2011, 18:39 Titel: |
|
|
das chfile soll ein befehl sein und soll mir dann wenn der dateiname angegeben ist ..eine ausgabe darüber geben wie letzte änderungen ander datei und gesetzte attribute ...um es genau zu sagen versuche ich zu übungszwecken ein cmd bzw dos klon auf die beine zu stellen ..dahe wäre es hilfreich zu wissen wie ich eben z.b chfile dateiname ...eingebe und dann die ausgabe erhalte anstatt es über zwei zeilen lsen zu müssen
sorry fals ich mich im ersten post falsch ausgedrückt habe |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 04.09.2011, 18:43 Titel: |
|
|
Hallo,
ich habe den Fehler, auf den modd schon anspielt, mal ausgebügelt:
Code: | #include "vbcompat.bi"
Declare Sub chfile (ByRef filename As String)
Declare Function getParamFromCmdLine (ByRef entireInput As String) As String
Declare Function getCmdFromCmdLine (ByRef entireInput As String) As String
Dim As String userInput, cmd, argument
Do
Print Environ("username"); "> ";
Line Input userInput
cmd = getCmdFromCmdLine(userInput)
Select Case LCase(cmd)
Case "dirscan": Print "Hier wird "; chr(34); "dirscan"; chr(34); " aufgerufen."
Case "dateiscan": Print "Hier wird "; chr(34); "dateiscan"; chr(34); " aufgerufen."
Case "cls": Cls
Case "chfile": argument = getParamFromCmdLine(userInput)
If argument = "" Then
Print "Fehler. Kein Argument angegeben."
Else
chfile(argument)
End If
Case "exit": End
Case Else: Print "Der Befehl "; chr(34); cmd; chr(34); " ist entweder falsch geschrieben oder"
Print "konnte nicht gefunden werden."
End Select
Loop
Sub chfile (ByRef filename As String)
Dim d As Double
If FileExists(filename) Then
d = FileDateTime (filename)
Print "Datei "; chr(34); filename; chr(34); " zuletzt ge"; chr(132); "ndert: ";
Print FORMAT(FileDateTime(filename), "dd.mm.yyyy, hh:mm:ss" )
Else
Print "Datei wurde nicht gefunden."
EndIf
End Sub
'Schneidet aus einer Eingabe wie
' LiesDatei c:\MeineDatei.txt
'nur den/die Parameter heraus, in diesem Fall: "c:\MeineDatei.txt"
Function getParamFromCmdLine (ByRef entireInput As String) As String
Dim As Integer position
position = InStr(entireInput, " ")
If position < 1 Then
Return ""
Else
Return Trim(Mid(entireInput, position+1))
End if
End Function
'Schneidet aus einer Eingabe wie
' LiesDatei c:\MeineDatei.txt
'nur das Kommando heraus, in diesem Fall: "LiesDatei"
Function getCmdFromCmdLine (ByRef entireInput As String) As String
Dim As Integer position
position = InStr(entireInput, " ")
If position < 1 Then
Return entireInput
Else
Return Trim(Left(entireInput, position-1))
End If
End Function
|
In Aktion könnte das Programm dann so aussehen:
Dabei ist auch zu erkennen, dass jetzt die Groß-/Kleinschreibung der Eingaben keine Rolle mehr spielt, d.h. ob man "DirScan", "dirscan" oder "DIRSCAN" eingibt, ist jetzt dasselbe.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
hitori04
Anmeldungsdatum: 21.04.2011 Beiträge: 53
|
Verfasst am: 04.09.2011, 18:48 Titel: |
|
|
Vielen, Vielen Dank !!!
das hilft extrem weiter
Nochmals Danke |
|
Nach oben |
|
 |
|