tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Zvoni
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
12949
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    stitch stitch ist offline Mitglied
    Registriert seit
    Nov 2001
    Ort
    Weidenhausen (Mitttelhessen)
    Beiträge
    20
    Bastel immer noch ein bisschen an meinem NetSend Programm rum (siehe: http://www.tutorials.de/forum/showth...&threadid=8222)

    Das einzige was mir jetzt noch fehlt, währe einen Online Status ähnlich ICQ.
    In PHP gibts ja die Funktion file_exists() mit der man checken kann ob eine Datei vorhanden ist. Gibt es sowas auch in VB? Wenn ja könnte ich nämlich auf die Rechner in meinem LAN überall ne Datei legen und dann je nach Existens mit ner If Abfrage den Status anzeigen.
    In meinem Buch find ich darüber nichts, aber da stand das mit den Dos Befehlen via shell auch net drin

    thx, im vorraus!
     
    christopher

  2. #2
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    unter vb gibts glaub ich keine fertige funktion um die existenz einer datei zu ueberpruefen. also selber eine schreiben...

    Public Function FileExists(FileName As String) As Boolean
    FileExists = (Dir$(FileName) <> "")
    End Function


    regards
     

  3. #3
    Avatar von SonMarcel
    SonMarcel SonMarcel ist offline Mitglied Bronze
    Registriert seit
    Jul 2004
    Beiträge
    36
    Hi,

    ich bearbeite gerade den Quellcode des Makros eine Access Dokuments und habe genau diese Funktion eingefügt, aber irgendwie ignoriert VBA beim Ausführen, dass ich diese Funktion ausgeführt haben möchte.

    Folgenden Code habe ich ganz unten im Code eingefügt:

    Code :
    1
    2
    3
    
    Public Function FileExists(ByVal FileName As String) As Boolean 'DatNameundPfad einsetzen
      FileExists = (Dir$(FileName) <> "")
    End Function


    Aufgerufen wird die Funktion durch diesen Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    VerZ = "c:\TourblattKontrolle\Tourblaetter\SA13\" & datum & "\"
    DatName = Dir(VerZ)
    DatNameNeu = Right(DatName, 7)
    DatNameundPfad = VerZ & DatNameNeu      'Soll-Endergebnis des Umbenennens (neuer Pfad + Dateiname)
     
    Do While DatName <> ""
    If FileExists(DatNameundPfad) = False Then
        Name VerZ & DatName As VerZ & "T" & DatNameNeu
    Else
        Name VerZ & DatName As VerZ & "T-" & DatNameNeu
    End If
    DatName = Dir(VerZ)
    DatNameNeu = Right(DatName, 7)
    DatNameundPfad = VerZ & DatNameNeu
    Loop


    Zum Code:

    Es geht um mehrere Dateien mit längeren Dateinamen. Jede Datei endet mit "ZZZ.pdf", also einer dreistelligen Zahl und der Endung. Ich möchte nun jede Datei umbenennen in "TZZZ.pdf", statt wie vorher "456465(...)ZZZ.pdf". Den neuen Dateinamen jeder Datei habe ich bereits bestimmt. Es gibt aber auch schonmal zwei der zu verarbeitenden Dateien, die eine gleiche Endung haben (also diese drei Zahlen samt pdf, nur die Zahlen davor unterscheiden sich). Durch meine Verzweigung möchte ich eigenlich erreichen, dass zuerst überprüft wird, ob der neue Dateiname, den die Datei erhalten soll, bereits vergeben ist (also ob da schon eine solche Datei vorhanden ist). Bei "True", also "doppelt vorhanden", soll das Programm sofort zum Else springen und ein "T-" vor die Zahl setzen, damit ich dann z.B. die Dateien "T745.pdf" und "T-745.pdf" habe.

    Leider spuckt mir das Programm aber immer wieder in der Zeile der ersten Verzweigung die Meldung "Datei bereits vorhanden" raus. Ziel war es ja eigendlich, diese Meldung zu verhindern.

    Kann mir vielleicht einer sagen, warum das gewünschte nicht ausgeführt wird? Was habe ich denn hier falsch gemacht?

    Vielen Dank schonmal,

    Marcel
     
    Pecunia non olet.

    Ein Mensch ohne Bücher ist wie ein Baum ohne Blätter.

  4. #4
    Zvoni Zvoni ist offline Mitglied Platin
    Registriert seit
    Jul 2008
    Ort
    Hinter dem Mond gleich links
    Beiträge
    735
    Zwei Dinge:
    In der zweiten Zeile suchst du nach einem Ordner und nicht nach einer Datei.
    In der viertletzten Zeile der Do-Loop-Schleife muss ein
    DatName=Dir
    rein, wenn du zur nächsten Datei willst.
    SonMarcel bedankt sich. 
    Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein

    Code vb:
    1
    
    If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")

  5. #5
    Avatar von SonMarcel
    SonMarcel SonMarcel ist offline Mitglied Bronze
    Registriert seit
    Jul 2004
    Beiträge
    36
    Zitat Zitat von Zvoni Beitrag anzeigen
    Zwei Dinge:
    In der zweiten Zeile suchst du nach einem Ordner und nicht nach einer Datei.
    In der viertletzten Zeile der Do-Loop-Schleife muss ein
    DatName=Dir
    rein, wenn du zur nächsten Datei willst.


    Fehler gelöst! Deine zwei Dinge waren nicht der Fehler. Er lag hier:

    DatNameundPfad = VerZ & DatNameNeu

    richtig wäre

    DatNameundPfad = VerZ & "T" & DatNameNeu

    Erst dadurch wird die Abfrage auch richtig ausgeführt.

    Aber danke für den Lösungsansatz!

    Marcel
     
    Pecunia non olet.

    Ein Mensch ohne Bücher ist wie ein Baum ohne Blätter.

Ähnliche Themen

  1. Prüfen, ob Datei im Internet vorhanden
    Von Afritus im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 02.01.10, 12:46
  2. Prüfen ob Datei vorhanden ist
    Von sandroP im Forum PHP
    Antworten: 18
    Letzter Beitrag: 06.06.09, 10:57
  3. Prüfen, ob eine externe XML-Datei vorhanden ist in XSLT
    Von gabifi im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 15.09.06, 11:06
  4. Prüfen ob eine Datei vorhanden ist
    Von exxtreme im Forum PHP
    Antworten: 3
    Letzter Beitrag: 22.05.06, 21:09
  5. Antworten: 4
    Letzter Beitrag: 03.02.05, 23:06