Absoluter Beginner (Stringprobleme mit NextDirectoryEntry)

Anfängerfragen zum Programmieren mit PureBasic.
dietmar
Beiträge: 97
Registriert: 19.09.2005 19:11
Wohnort: Zuhause

Absoluter Beginner (Stringprobleme mit NextDirectoryEntry)

Beitrag von dietmar »

Wenn ich folgendes Versuche:

Code: Alles auswählen

Repeat

ExamineDirectory(0, "D:\Auswertung\52019043", "*.*")
 Name = NextDirectoryEntry()
 CreateFile(1, "D:\Name.txt")
 UseFile(1)
 WriteString(Name)
Until Name = 0
Bekomme ich eine Fehlermeldung das ein String erwartet wird. Wenn ich "Name als String deklariere sagt er das geht auch nicht, warum? Und wie kann ich das verhindern.

Anm. von freedimension: Nächstes Mal bitte Code-Tags setzen und einen aussagekräftigen Titel wählen, absolute Beginner gibt es hier wie Sand am Meer ;)
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

string

Beitrag von roherter »

Code: Alles auswählen

NextdirectoryEntry; Springt einfach auf nächste file den namen must du anders auslesen!


Repeat
  
  ExamineDirectory(0, "D:\Auswertung\52019043", "*.*")
  Name = NextDirectoryEntry()
  DateiName$ = DirectoryEntryName()
  
  CreateFile(1, "D:\Name.txt")
  UseFile(1)
  WriteString(DateiName$)
Until Name = 0 
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: string

Beitrag von Kiffi »

roherter hat geschrieben:

Code: Alles auswählen

  CreateFile(1, "D:\Name.txt")
  UseFile(1)
1. UseFile benötigt man in diesem Fall nicht

2. Immer prüfen, ob CreateFile() geklappt hat

Code: Alles auswählen

  FF = CreateFile(#PB_ANY, "D:\Name.txt")
  If FF
    [...]
3. Hast Du Deinen Code eigentlich mal ausprobiert? ExamineDirectory in
einer Repeat-Schleife tut nicht gut.

@dietmar: so, wie Du das wahrscheinlich vorhast, wird es nicht klappen.
Du möchtest alle Dateinamen, die sich im Ordner '52019043' befinden,
zeilenweise in die Datei Name.txt schreiben. Korrekt?

Ich würde so vorgehen:

Code: Alles auswählen

  If ExamineDirectory(0, "D:\Auswertung\52019043", "*.*")
    
    FF = CreateFile(#PB_Any, "D:\Name.txt")
    
    If FF
      
      Repeat
        
        FileType = NextDirectoryEntry()
        
        If FileType = 1 ; handelt es sich um eine Datei?
          DateiName$ = DirectoryEntryName() 
          WriteStringN(DateiName$)
        EndIf
        
      Until FileType = 0 
      
      CloseFile(FF)
      
    Else
      
      MessageRequester("", "Datei konnte nicht erstellt werden!")
      
    EndIf
    
  Else
    
    MessageRequester("", "Konnte Verzeichnis nicht analysieren!")
    
  EndIf
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

kiffi

Beitrag von roherter »

Hast recht kiffi habs heute morgen nur überflogen!
Purebasic 5.0 32bit und 64 bit

I'm back from hell
dietmar
Beiträge: 97
Registriert: 19.09.2005 19:11
Wohnort: Zuhause

Beitrag von dietmar »

So funktioniert es wesenlich besser als vorher.
Danke
Antworten