Ordner nach Ordner durchs. -> öffnen/erstellen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

dominik

Betreff: Ordner nach Ordner durchs. -> öffnen/erstellen

BeitragSo, Jan 08, 2006 23:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei folgendem Code bekomme ich beim erstellen von Ordnern immer nur ein "blitzcc hat ein prob. festgestellt und muss beendet werden", wenn ich die Ordner allerdings voher "von Hand" erstelle dann funtzt alles ???

Code editiert und fehlerfrei!
Code: [AUSKLAPPEN]
Function Ordner_uebersicht()
  ordner_wechseln(domain$, pfad$)
  ordner_wechseln(tld$, pfad$ + "/" + domain$)
  ordner_wechseln(domain_abs$, pfad$ + "/" + domain$ + "/" + tld$)
End Function

Function ordner_wechseln(gesuchter_Ordner$, in_pfad$)
  Local ordner_exs = False

  verz = ReadDir(in_pfad$)   ;nach Ordner suchen
  Repeat
    If ordner_exs = False Then durchs$ = NextFile(verz)
    If FileType(durchs$) = 2 And durchs$ = gesuchter_Ordner$ Then
      ChangeDir durchs$   ;wenn ordner vorhanden öffnen
      ordner_exs = True
      Exit
    EndIf
  Until durch$ = ""

  ;Wenn Ordner nicht vorhanden erstellen
  If ordner_exs = False Then
    CreateDir(gesuchter_Ordner$)
    ChangeDir(gesuchter_Ordner$)
  EndIf
End Function


Testet mal bei euch. Ich kann einfach keinen Fehler finden.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.
  • Zuletzt bearbeitet von dominik am Mo, Jan 09, 2006 20:29, insgesamt 3-mal bearbeitet

x-pressive

BeitragMo, Jan 09, 2006 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Fehlermeldung unter Blitz3D (1.9). Eventuell liegt's an einem anderen Teil deines Programms.

-Warum steckst du die Funktionen Ordner_uebersicht und Ordner_uebersicht mit dazu, wenn du sie gar nicht verwendest?
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

dominik

BeitragMo, Jan 09, 2006 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
weil Ordner_uebersicht() --> ordner_wechseln(gesuchter_Ordner$, in_pfad$) aufruft.

Keine Fehlermeldung unter Blitz3D (1.9) --> Ich hab B+

Was meinst du??
Gerade das is ja mein prob die Fehler meldung kommt eben nicht von BB sonder von win, und das ist nicht mein einzigstes prog bei dem mir das passiert. leider kann ich mit der meldung bezüglich meines fehlers aber nichts anfangen.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

bruZard

BeitragMo, Jan 09, 2006 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir jetzt nicht 100% sicher, aber ich glaube um einen Ordner zu erstellen benötigt man einen absoluten Pfad.

IHMO funktioniert CreateDir("\test\mein_ordner") nicht, CreateDir("C:\test\mein_ordner") jedoch schon.

Probiere doch einfach mal den Pfad absolut anzugeben.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

dominik

BeitragMo, Jan 09, 2006 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Pfad$ behinhaltet schon den kompletten Pfad ab C:\dokumente ....

Und BB dürfte es doch egal sein ob ich
Pfad$ = Pfad$ + "/" + ....
oder vorher schon alles in Pfad$ speichere und dann nur noch in einer Var übergebe.
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Hip Teen

BeitragMo, Jan 09, 2006 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Fehler liegt in folgendem Teil:
Code: [AUSKLAPPEN]
  verz = ReadDir(in_pfad$ + "\" + gesuchter_Ordner$+"\")   ;nach Ordner suchen
  Repeat
    If ordner_exs = False Then durchs$ = NextFile(verz)

wenn das Verzeichnis nicht vorhanden ist, ist verz null. Dann führst du aber trotzdem
Code: [AUSKLAPPEN]
durchs$ = NextFile(verz)

aus. Das Verursacht den Fehler.
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"
 

TACITUS

BeitragMo, Jan 09, 2006 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hip Teen hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
durchs$ = NextFile(verz)

aus. Das Verursacht den Fehler.


NextFile$(verz) denke ich, gibt doch einen String$ zurück.
Oder ist das wieder so wie bei Input() ? Rolling Eyes
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image

Hip Teen

BeitragMo, Jan 09, 2006 20:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist Jacke wie Hose in dem Fall. Du musst in BB die Funktion (und auch die Variablen) nur für den richtigen Datentyp deklarieren, danach kannst du die Suffixe (&, # etc) weglassen.
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

dominik

BeitragMo, Jan 09, 2006 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ohoooo ohooooo

und warum ????

weils nicht
Code: [AUSKLAPPEN]
verz = ReadDir(in_pfad$ + "\" + gesuchter_Ordner$)

sondern
Code: [AUSKLAPPEN]
verz = ReadDir(in_pfad$)

heißen muss

Danke danke mein Retter Very Happy
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Jan 09, 2006 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Function kannste aber extrem kürzen, da du direkt nachfragen kannst ob der Ordner exitiert!

Code: [AUSKLAPPEN]
Function ordner_wechseln(gesuchter_Ordner$, in_pfad$)
   If ReadDir(in_pfad$ + "/" + gesuchter_Ordner$)  = False Then
      CreateDir(gesuchter_Ordner$)
     End If
     ChangeDir(gesuchter_Ordner$)
End Function
[BB2D | BB3D | BB+]
 

TACITUS

BeitragDi, Jan 10, 2006 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hip Teen hat Folgendes geschrieben:
Das ist Jacke wie Hose in dem Fall. Du musst in BB die Funktion (und auch die Variablen) nur für den richtigen Datentyp deklarieren, danach kannst du die Suffixe (&, # etc) weglassen.


Also wenn das so ist, könnte ich ja auch zum Beispiel Mid(String$,1,1)
schreiben oder was? Schliesslich ist die Funktion im Code von BB deklariert

if das da oben = False then Dann gilt es wohl nur für selbstdeklarierte
Funktionen.. Rolling Eyes
AMD Athlon 64 X2 4200+ Dual Core Prozessor _ 1024 MB Dual Channel DDR RAM _ GeForce 7800 GT PCI Express 256 MB GDDR3 RAM _ Festplatte 410 GB _ DirectX 9.0c
User posted image

Hip Teen

BeitragDi, Jan 10, 2006 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich kann nur von B+ ausgehen, da ich B3D nicht habe, aber da ist es jedenfalls so, dass man das $ nur bei Deklarationen angeben muss. Beispiel? Hier:
Code: [AUSKLAPPEN]
Function test$()
   Return "waaaah"
End Function

Notify test()
Notify Mid(test(), 1,5)

Einmal ne eigene, da hab ich das $ weggelassen, geht ohne Probleme. Dann eine BB Funktion, hab das $ weggelassen, geht auch ohne Probleme, zeigt mir den Text an. Also ist es BB egal, ob da ein $ steht, wenn es denn erstmal definiert ist.

q.e.d
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group