DeleteFile funzt net oO

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Marek

Betreff: DeleteFile funzt net oO

BeitragDi, Jan 23, 2007 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Problem bei folgendem code, die erstellten dateien werden nicht gelöscht...
woran könnte das liegen?
Code: [AUSKLAPPEN]
Print AvailVidMem()
createspech("Latein")
createspech("Englisch")
createlesson("Latein",1)
createlesson("Latein",2)
createlesson("Latein",99)
createlesson("Englisch",1)
createword("Latein",1,"xD","Hallo","muhahaha","gg")
createword("Englisch",1,"xD","Hallo","muhahaha","gg")
WaitKey
deletespech("Latein")
Print AvailVidMem()
WaitKey
End


;***********************CreateSpech************************
;__________________________________________________________
;die Funktion erstellt eine neue Sprache im Register.     *
;wird 0 zurückgeliefert, so existiert die Sprache bereits.*
;wird 1 zurückgeliefert, wurde die Sprache erstellt.      *
;__________________________________________________________

Function CreateSpech(spech$)

 file=OpenFile("data\sprachregister.dat")

 While Not Eof(file)

  stream$=ReadString$(file)

  If stream$=spech$ Then
   exist=1
  EndIf

 Wend


 If exist=1 Then
  Return 0
 EndIf

 If exist=0 Then
  WriteString(file,spech$)
  CreateDir("Sprachen\"+spech$)
  Return 1
 EndIf

 CloseFile file

End Function

;***********************DeleteSpech************************
;__________________________________________________________
;die Funktion löscht eine  Sprache aus dem Register.      *
;__________________________________________________________

Function DeleteSpech(spech$)
 
 dir=ReadDir("Sprachen\"+spech$+"\")

 Repeat

  file$=NextFile$(dir)
  Print file$

  If file$="" Then
   Goto secondpart
  EndIf

  DeleteFile("Sprachen\"+spech$+"\"+file$)

 Forever

 .secondpart

 CloseDir dir
 DeleteDir "Sprachen\"+spech$+"\"

 file=OpenFile("data\sprachregister.dat")
 temp=WriteFile("data\sreg_temp.dat")

 While Not Eof(file)

  stream$=ReadString$(file)

  If Not stream$=spech$ Then
   WriteString(temp,stream$)
  EndIf

 Wend
 CloseFile file
 CloseFile temp
 CopyFile "data\sreg_temp.dat","data\sprachregister.dat"

 DeleteFile "data\sreg_temp.dat"

End Function

;***********************CreateLesson***********************
;__________________________________________________________
;die Funktion erstellt eine neue Lektion im Register.     *
;wird 0 zurückgeliefert, so existiert die Lektion bereits.*
;wird 1 zurückgeliefert, wurde die Lektion erstellt.      *
;die Lektion wird mit 0 Vokabeln abgespeichert.           *
;__________________________________________________________

Function CreateLesson(spech$,lesson)

 If FileType("Sprachen\"+spech$+"\"+lesson+".lsn")=1 Then
  Return 0
 Else
  file=WriteFile("Sprachen\"+spech$+"\"+lesson+".lsn")
  WriteByte(file,0)
  Return 1
  CloseFile file
 EndIf

End Function

;************************CreateWord************************
;__________________________________________________________
;die Funktion erstellt ein neues Wort im Register.        *
;wird 0 zurückgeliefert, so existiert das Wort bereits.   *
;wird 1 zurückgeliefert, wurde das Wort erstellt.         *
;wird 2 zurückgeliefert, wurde keine Bedeutung angegeben. *
;__________________________________________________________

Function CreateWord(spech$,lesson,word$,meaning1$,meaning2$,meaning3$)

 If meaning1$=""Then
  Return 2
  Goto fende
 EndIf

 If meaning3$="" Then
  If meaning2$="" Then
   meanings=1
  Else
   meanings=2
  EndIf
 Else
  meanings=3
 EndIf

 file=OpenFile("Sprachen\"+spech$+"\"+lesson+".lsn")
 temp=WriteFile("Sprachen\"+spech$+"\"+lesson+"_temp.lsn")

 count=ReadByte(file)
 WriteByte(temp,count+1)

 variable=0

 If Not count=0 Then
  For x=1 To count

   filemeanings=ReadByte(file)
   WriteByte(temp,filemeanings)

   fileword$=ReadString$(file)
   WriteByte(temp,fileword$)

   If fileword$=word$ Then

    If filemeanings=meanings Then

     If meanings=1 Then

      filemeaning1$=ReadString$(file)

      If filemeaning1$=meaning1$ Then
       Return 0
       variable=1
       Goto fende
      Else
       WriteString(temp,filemeaning1$)
      EndIf

     ElseIf meanings=2

      filemeaning1$=ReadString$(file)
      filemeaning2$=ReadString$(file)

      If filemeaning1$=meaning1$ And filemeaning2$=meaning2$ Then
       Return 0
       variable=1
       Goto fende
      Else
       WriteString(temp,filemeaning1$)
       WriteString(temp,filemeaning2$)
      EndIf

     ElseIf meanings=3

      filemeaning1$=ReadString$(file)
      filemeaning2$=ReadString$(file)
      filemeaning3$=ReadString$(file)

      If filemeaning1$=meaning1$ And filemeaning2$=meaning2$ And filemeaning3$=meaning3$ Then
       Return 0
       variable=1
       Goto fende
      Else
       WriteString(temp,filemeaning1$)
       WriteString(temp,filemeaning2$)
       WriteString(temp,filemeaning3$)
      EndIf

     EndIf

    Else

     If filemeanings=1 Then
      WriteString(temp,ReadString$(file))
     ElseIf filemeanings=2 Then
      WriteString(temp,ReadString$(file))
      WriteString(temp,ReadString$(file))
     ElseIf filemeanings=3 Then
      WriteString(temp,ReadString$(file))
      WriteString(temp,ReadString$(file))
      WriteString(temp,ReadString$(file))
     EndIf

    EndIf

   Else

    If filemeanings=1 Then
     WriteString(temp,ReadString$(file))
    ElseIf filemeanings=2 Then
     WriteString(temp,ReadString$(file))
     WriteString(temp,ReadString$(file))
    ElseIf filemeanings=3 Then
     WriteString(temp,ReadString$(file))
     WriteString(temp,ReadString$(file))
     WriteString(temp,ReadString$(file))
    EndIf

   EndIf

  Next
 
  WriteByte(temp,meanings)
  WriteString(temp,word$)

  If meanings=1 Then
   WriteString(temp,meaning1$)
  ElseIf meanings=2 Then
   WriteString(temp,meaning1$)
   WriteString(temp,meaning2$)
  ElseIf meanings=3 Then
   WriteString(temp,meaning1$)
   WriteString(temp,meaning2$)
   WriteString(temp,meaning3$)
  EndIf
 
 Else
 
  WriteByte(temp,meanings)
  WriteString(temp,word$)

  If meanings=1 Then
   WriteString(temp,meaning1$)
  ElseIf meanings=2 Then
   WriteString(temp,meaning1$)
   WriteString(temp,meaning2$)
  ElseIf meanings=3 Then
   WriteString(temp,meaning1$)
   WriteString(temp,meaning2$)
   WriteString(temp,meaning3$)
  EndIf
 
 EndIf

 .fende
 CloseFile file
 CloseFile temp
 If variable=0 Then
  CopyFile "Sprachen\"+spech$+"\"+lesson+"_temp.lsn","Sprachen\"+spech$+"\"+lesson+".lsn"
 EndIf
 DeleteFile("Sprachen\"+spech$+"\"+lesson+"_temp.lsn")
End Function

Christoph

BeitragDi, Jan 23, 2007 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Überprüfe mal folgendes:

-kommt das Programm überhaupt an die Stelle, an der Deletefile steht?

->am besten ein runtimeerror davor einbauen, falls das Prog "abstürzt" ist es dieser Punkt schon mal nicht

-wird die Datei von irgendjemandem benutzt?

->von anderen Anwendungen?
->von dir?

-richtiger Dateiname mit richtigem Pfad (falls nötig)?
 

Marek

BeitragDi, Jan 23, 2007 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Programm wurde mit B3d geproggt, daher kein runtimeerror möglich. Es funtzt auch, die Datei wird nur vom Programm selbst genutzt. Nur dass ich eigentlich immer Closefile benutzt habe(min 20-mal überprüft), trotzdem werden die Dateien nicht gelöscht, so wie sie es sollten...

StepTiger

BeitragDi, Jan 23, 2007 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum war kein RuntimeError möglich?
B3D ist schon was feines, heh?

nein, du lässt sie dauerhaft offen, da du schon vorher return machst, was die funktion automatisch beendet, aber egal.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Marek

BeitragDi, Jan 23, 2007 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
ah, danke xD

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group