Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Problem mit If und Subs

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 04.09.2011, 16:58    Titel: Problem mit If und Subs Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 04.09.2011, 18:17    Titel: Antworten mit Zitat

In deinem Beispiel hast du 'chfile test.bas ' eingegeben, abfragen tust du aber 'If whatdoing = "chfile"'. Siehst du das Problem?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 04.09.2011, 18:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 04.09.2011, 18:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
hitori04



Anmeldungsdatum: 21.04.2011
Beiträge: 53

BeitragVerfasst am: 04.09.2011, 18:48    Titel: Antworten mit Zitat

Vielen, Vielen Dank !!!
das hilft extrem weiter lächeln

Nochmals Danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz