Datei suchen...
Übersicht

![]() |
N0XBetreff: Datei suchen... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey!
Ich schreibe gerade einen Server für mein Spiel und muss dafür Dateien suchen lassen. Wie kann ich überprüfen ob eine Datei mit Namen "Peter.txt" schon vorhanden ist? Habs so probiert: Code: [AUSKLAPPEN] dir = ReadDir(CurrentDir())
Repeat nFile$ = NextFile(dir) da = Instr(name$,nFile$) If da = True Then Exit Until nFile = " \" CloseDir(dir) Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
FileType![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, hab's mal ein bisschen erweitert, aber mir wird jetzt 6mal "DIRECTORY" angezeigt, einmal "FILE" und dann ein Error.
Warum? Code: [AUSKLAPPEN] ChangeDir("\users")
dir = ReadDir(CurrentDir()) Repeat nFile$ = NextFile(dir) If FileType(nFile$)=1 Then Print "FILE" If Instr(name$+".txt",nFile$) Then Print "User already exists" Else Local file = WriteFile("users\"+name$+".txt") WriteLine file,"[AccData]" WriteLine file,name$ WriteLine file,pass$ WriteLine file,mail$ WriteLine file,"[CharData]" WriteLine file,"!NO_PLAYER" CloseFile(file) EndIf ElseIf FileType(nFile$)=2 Print "DIRECTORY" 'Do nothing! Else Print "ERROR" 'No Files/Directorys found EndIf Until nFile$ = " \" CloseDir(dir) Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] nFile$ = NextFile(dir)
Wenn es nichts mehr im Verzeichnis gibt, liefert NextFile einen Leeren String zurück.
if nFile$="" then exit |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, ich krieg nen immernoch nen Fehler:
~>Unhandled Exception:Attempt to access field or method of Null object ~> Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohne weitere Infos zu dem Fehler... | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das sind wirklich alle Info's!
Es wird 6mal DIRECTORY angezeigt und 1mal FILE und dann der Fehler. Der Fehler ist genau in diesem Teil. Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
...ohne konkrete Angabe, welche Zeile den Fehler auslöst, kann ich da nichts genaues zu sagen.
Bist du sicher, das dass hier richtig ist? WriteFile("users\"+name$+".txt") Immerhin befindest du dich schon im Ordner users. Lass dir die Aktuellen Pfade immer ausgeben! |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, Fehler ist in der ersten WriteLine Zeile wo in die TXT Datei geschrieben wird. (WriteLine file,"[AccData]")
Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das heißt, der Datei-Stream konnte nicht geöffnet werden.
Code: [AUSKLAPPEN] Local file = WriteFile(CurrentDir() + "/" + name + ".txt")
If Not file RuntimeError("Konnte keine Datei schreiben unter: ~n" + CurrentDir() + "/" + name + ".txt") |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke, Problem war, das mein Programm die Datei im Ordner "C:\users\" erstellen wollte und nicht im aktuellen Pfad.
Ich musste einen Punkt bei dem ChangeDir machen. (ChangeDir(./users)) Mfg, N0X //EDIT: Ne, doch nicht, aber wenn ich "..\users" eingebe, komme ich in das höherliegende Verzeichnis von users. Wie komme ich direkt in "users"? N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was gibt den Currentdir aus? Wechselst du nicht gleich zu Anfang ins User Verzeichnis?
Wie gesagt: Lass dir immer den aktuellen Pfad ausgeben! Überprüfe nötigenfalls die einzelnen Schritte die du machst. "." ist das aktuelle Verzeichnis ".." ist führt in den übergeordneten Ordner. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Direkt nach ChangeDir gibt CurrentDir "C:/users" aus, wenn ich bei ChangeDir "\users\" geschrieben habe.
Liegt es vielleicht daran das ich alles in der Console ausgebe und diese eben auf C: liegt? Mfg, N0X //EDIT: Klappt doch! ;D |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klär mich mal kurz auf... Du möchtest doch nur rausfinden ob eine bestimmte Datei schon existiert, oder?
Wenn diese Datei dann existiert soll nichts geschehen aber wenn nicht, dann soll sie geschrieben werden. (So versteh ich den ganzen Text da über mir) BlitzMax: [AUSKLAPPEN] If FileType("/users/"+name+".txt") = 1 Würde das dafür nicht schon genügen? Mal davon ab, ich hoffe dein Server soll nicht online gehen, dann kannst du nämlich alles was an Dateiabfragen da verwendest auch komplett vergessen. Soweit mir bekannt ist funktioniert das nur lokal. |
||
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso, danke!
Doch, doch der soll irgendwann mal online gehen! Warum sollte das nicht funktionieren? Wenn die Dateien doch alle auf dem Server liegen? Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gerade mal recherchiert... Du hast recht, es funktioniert, wenn man "http::" benutzt. Wieder was gelernt!
Natürlich muss man dann noch in einem Framework brl.httpstream importieren. Schätze das war dann mein Fehler bisher. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group