 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
BombE
Anmeldungsdatum: 18.01.2006 Beiträge: 31
|
Verfasst am: 08.07.2006, 17:56 Titel: if Abfrage |
|
|
hallo wie mache ich eine if Abfrage die prüft ob eine Datei existiert ?
ich habe sowas versucht aber das geht nicht
Code: | IF EXIST DATEI.TXT DO GOTO 1 ELSE GOTO 2[quote][/quote] |
|
|
Nach oben |
|
 |
Elvis

Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 08.07.2006, 18:13 Titel: |
|
|
Ich meine irgendwo eimal gelesen zu haben, dass man, falls einer kommt, den Error-Code (wenn er die Datei nicht findet) einlesen muss. Wenn die Datei nicht existiert beendet er ja das Programm und zeigt zum Beispiel an:
File not found in Module TEST at Adress: 0924:003E
Hit any key to return to system
Tabellen zu den verschieden Error Codes gibt es ja.
Code: |
OPEN "TEST.DAT" FOR INPUT AS #1
IF ErrCode = 1 THEN GOSUB DateiExistiertNicht '1 ist nur ein Beispiel
INPUT #1, Variable$
CLOSE #1
END
DateiExistiertNicht:
PRINT "Sorry, die Datei existiert nicht. Versuch's nochmal mit einem"
PRINT "anderen Pfad..."
|
Ich hoffe, ich konnte dir damit ein Bisschen weiterhelfen. |
|
Nach oben |
|
 |
A.K.

Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 08.07.2006, 18:16 Titel: |
|
|
Hi,
Code: |
datei$="blablub"
OPEN datei$ FOR BINARY AS #1
IF LOF(1) = 0 THEN CLOSE #1: KILL datei$: PRINT "Datei nicht vorhanden"
ELSE
CLOSE #1
PRINT "Datei vorhanden"
END IF
|
MFG A.K. _________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 08.07.2006, 18:18 Titel: |
|
|
MonsterFAQ hat Folgendes geschrieben: | Frage deutsch
~~~~~~~~~~~~~~
Wie stelle ich fest, ob eine Datei vorhanden ist?
Question English
~~~~~~~~~~~~~~
How can I detect if a certain file is existing or not?
How to figure out whether a file is existing or not?
Antwort 1
~~~~~~~~~~~~~
[ von Thomas Antoni, 26.10.2004 - 5.4.2006 ]
So kann man prüfen, ob eine Datei vorhanden ist:
*** Variante 1: Fehlerauswertung mit ON ERROR
Willst Du feststellen, ob eine -> Sequentiellen Datei vorhanden ist, so musst Du sie erst zum Lesen öffnen. Ist die Datei nicht vorhanden, dann erfolgt eine Fehlermeldung, die Du mit ON ERROR abfangen kannst. Bei -> Direktzugriffsdateien und -> Binärdateien funktioniert das auch, aber dort gibt es eine elegantere Methode, die weiter unten in "Variante 2" erläutert ist.
Mein folgendes Programm "SEQERROR.BAS" zeigt, wie Du das Vorhandensein einer Datei mit ON ERROR fesstellen kannst.
'*********************************************************************
' SEQERROR.BAS = Stellt fest, ob eine sequentielle Datei vorhanden ist
' ============
' (C) Thomas Antoni, 15.5.2005
'*********************************************************************
ON ERROR GOTO fehler
INPUT "Welche Datei wollen Sie oeffnen "; dateiname$
OPEN dateiname$ FOR INPUT AS #1
GOTO weiter
fehler: PRINT "Datei nicht vorhanden!"
INPUT "Geben Sie den korrekten Dateinamen ein"; dateiname$
RESUME 'Ruecksprung zum fehlerverursachenden Befehl
weiter: PRINT "Datei ist vorhanden"
'... Hier folgen die weiteren Befehle
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/seqerror.bas .
Das Programm beendet sich, wenn die eingegebene Datei nicht vorhanden ist. Viel komfortabler wäre es natürlich, wenn Du dem Anwender eine Chance zur Neueingabe des Dateinamens geben würdest. Wie man das realisieren kann, zeigt das folgende Programm:
'****************************************************************************
' FILEXIS2.BAS - Testet ob eine Datei vorhanden ist (Komfort-Version)
' ============
' Dieses Q(uick)Basic-Programm demonstriert, wie man feststellt, ob eine
' Datei vorhanden ist. Der Pfad- und Dateiname wird vom Anwender sooft
' erfragt bis auf die Datei ohne Fehler zugegriffen werden kann.
'
' (c) Thomas Antoni, 5.4.2006
'****************************************************************************
'
ON ERROR GOTO ErrorHandler 'Bei nicht vorhandener Datei
'Fehlerroutine anspringen
Start: 'Wieder-Einsprungstelle bei Fehler (nicht vorhandene Datei)
CLS
IF Fehler% = 1 THEN
COLOR 12, 0 'rot auf schwarz
PRINT "Datei "; path$; " exististiert nicht, bitte richtigen Pfad eingeben!"
COLOR 7, 0 'wieder normale Schrift hellgrau auf schwarz
END IF
'
'------------- Pfad- und Dateinamen erfragen und in path$ hinterlegen
LOCATE 3
PRINT "Gib den Pfad- und Dateinamen ein, z.B. C:\text\meintext.txt"
INPUT path$
'
'----------- Datei oeffnen
Fehler% = 0 'Vorbesetzung: Kein Fehler
OPEN path$ FOR INPUT AS #1
'ist die Datei nicht vorhanden, erfolgt sofort ein Sprung zum ErrorHandler
CLOSE #1
PRINT "Der Pfad ist korrekt eingegeben."
SLEEP 'Warten auf beliebige Taste
END
'
'----------- Fehlerbehandlung falls Datei nicht vorhanden -------------------
ErrorHandler:
Fehler% = 1 'Fehlermerker setzen
RESUME Start 'neue Eingabe
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/filexis2.bas .
*** Variante 2: Dateilänge abfragen
Bei -> Direktzugriffdateien und -> Binärdateien kann man die Dateilänge auf "0" abfragen. Hat eine Datei die Länge Null, dann kann man davon ausgehen, dass sie nicht existiert. Es gibt zwar auch Dateien die keine Daten enthalten. Das siehst Du z.B., wenn Du z.B. ein leeres Programm in der QBasic-Entwicklungsumgebung abspeicherst. In der Programmierpraxis werden solche Leerdateien aber jedoch fast nie vorkommen.
Diese Längenabfrage funktioniert wie folgt:
IF LOF (<Dateinr. ohne #>) > 0 THEN ... 'Dateilänge > 0 ?
Die Methode funktioniert bei Direktzugriffs-Dateien und binären Dateien. Bei sequentiellen Dateien ist sie nur in der Zugriffsart OUTPUT verwendbar.
**** Variante 3
Bei Direktzugriffs-Dateien kannst prüfen, ob ein definiertes Datum z.B. eine "1" aus der ersten Datensatz der Datei rücklesbar ist, siehe TOP96.BAS (). Wenn stattdessen "0" ausgelesen wird, ist die Datei nicht vorhanden.
Welche der 3 genannten Varianten sinnvoll ist, hängt von der Dateiart und der Zugriffsart ab.
Antwort 2
~~~~~~~~~~~~~~~~
[ von Andreas Meile im QB-Forum, 2004 ]
.
Weil in QB so etwas wie file_exists() aus der Programmiersprache PHP fehlt, würde ich doch dafür eine kleine Ersatz-FUNCTION wie folgt implementieren:
'********************************************************
' FILEXIST.EXE = Testet ob eine Datei existiert
' ============
' Dieses QBasic-Programm stellt fest, ob eine Datei
' mit dem angegebenen Pfad- und Dateinamen existiert.
' Es ist ein einfacher Ersatz f?r file_exists() aus PHP
'
' (c) Andreas Meile, 25.10.2004
' ("Dreael"; qbasicde*dreael.ch)
'********************************************************
'
DECLARE FUNCTION DateiExistiert% (d$)
'
INPUT "Dateiname"; d$
'
IF DateiExistiert(d$) THEN
PRINT "Datei "; d$; " existiert."
ELSE
PRINT "Datei "; d$; " gibt es nicht!"
END IF
'
END
'
Fehler:
ex% = 0
RESUME NEXT
'
FUNCTION DateiExistiert% (d$)
SHARED ex%
'
ex% = -1
ON ERROR GOTO Fehler
OPEN d$ FOR INPUT AS 1
CLOSE 1
ON ERROR GOTO 0
DateiExistiert% = ex%
END FUNCTION
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/filexist.bas .
Leider muss der Error-Handler bei Q(uick)Basic (hier die Befehlssequenz nach "Fehler:") im Hauptprogramm platziert sein und daf nicht in einer SUB oder FUNCTION untergebracht sein.
Antwort 3
~~~~~~~~~~~~~
[ im QB-Forum, 26.10.2004 ]
Wenn der Dateiname nicht als Variable im Programm gebraucht wird, kann man eine
Batchdatei oder als Shell-Befehl das ganze recht einfach machen.
*** Codebeispiel mit SHELL
SHELL "if exist c:\file.dat del c:\file.dat"
*** Codebeispiel mit einer Batchdatei namens loesch.bat
Inhalt der Batchdatei loesch.bat:
if exist %1 del %1
Inhalt QB-Programms, das die Batchdatei loesch.bat aufruft:
SHELL "loesch c:\file.dat"
Antwort 4
~~~~~~~~~
[ von BufferUnderrun, 11.1999 ]
.
Das geht gemäß folgender Befehlssequenz:
.
ON ERROR GOTO Handler
INPUT "Welche Datei ist auf ihre Existenz hin zu prüfen? ",datnam$
OPEN "I", #1, datnam$
CLOSE #1
GOTO Ende
Handler:
PRINT "Datei ";datnam$;"nicht gefunden!"
RESUME Ende
Ende:
Wichtig ist, dass die Datei sequenziell im INPUT-Modus geöffnet wird, denn im OUTPUS-Modus würde sie einfach erstellt werden.
Antwort 5
~~~~~~~~
[ von Ch@rly im QB-Forum 29.4.02 ]
.
Es gibt verschiedene Möglichkeiten, das abzuprüfen.
1. Wenn Du weißt, wie die Datei heißt, kannst Du sie einfach öffnen. Wenn das
Geht, dann ist die CD bereit. Z.B. so:
ON ERROR GOTO ErrorHandler:
fehler = 0
kanal = FREEFILE
OPEN "c:\tmp\test.bas" FOR INPUT AS #kanal
IF fehler = 0 THEN
CLOSE #kanal
PRINT "Die Datei existiert !"
ELSE
PRINT "Die Datei existiert nicht !"
END IF
END
ErrorHandler:
fehler = ERR
RESUME NEXT
Diese Methode hat 2 kleine Nachteile. Erstens ist sie so nicht Multi-User-fähig. Wenn die Datei z.B. existiert, aber von einem andern Programm exklusiv geöffnet ist, so kommt es trotzdem beim Öffnen zu einem Fehler. Um dies zu verhindern, müßte man zusätzlich die Fehler Codes abfragen. Zweitens mußt Du den Namen einer Datei kennen, um sie anwenden zu können.
2. Du machst ein Dir in eine Datei und liest diese aus:
ON ERROR GOTO ErrorHandler:
SHELL "dir c:\tmp\*.txt > c:\tmp\test.tmp"
fehler = 0
kanal = FREEFILE
OPEN "c:\tmp\test.tmp" FOR INPUT AS #kanal
IF fehler = 0 THEN
DO
LINE INPUT #kanal, a$
PRINT a$
' Hier die Kontrolle, ob es die Datei gibt.
LOOP WHILE NOT EOF(kanal)
CLOSE #kanal
END IF
KILL "c:\tmp\test.tmp"
END
ErrorHandler:
fehler = ERR
RESUME NEXT
Auch diese Methode hat einen Nachteil, und zwar kann ist das Ergebnis von DIR je nach Betriebssystem unterschiedlich sein. Außerdem ist sie natürlich langsam, da mehrere Male auf das Laufwerk zugegriffen werden muß
3. Du gehst zu www.plutomania.de.vu und dort findest Du unter SUBS – Datei verschiedene Routinen, die bestens funktionieren. Diese arbeiten mit Interupts, so daß sie schnell und ohne die oben beschriebenen Nachteile funktionieren.
Antwort 6
~~~~~~~~~
[ von TT-Soft ( www.East-Power-Soft.de/ ) per Mail, 18.01.2002 ]
.
Das geht mit der folgenden Befehlssequenz:
FileName$ = "BEISPIEL.TXT"
OPEN FileName$ FOR BINARY AS #1:L = LOF(1):CLOSE #1
IF L = 0 then
KILL FileName$
PRINT "Datei nicht vorhanden"
ELSE
PRINT "Datei existiert"
END IF
Antwort 7
~~~~~~~~~
Einfach vorher Fehlerroutine einbauen, dann versuchen Datei zu öffnen, z.B.
ON ERROR GOTO fehler
'
OPEN file$ FOR INPUT AS #1
CLOSE
'
if fehler% = 0 then print "DATEI EXISTIERT!!"
'
fehler:
fehler%=1
RESUME NEXT
Antwort 8
~~~~~~~~~
Wenn du ON ERROR nicht benutzen willst, kannst du's auch so machen:
OPEN "[Datei.ext]" FOR BINARY AS #1
IF LOF(1) < 1 DateiCheck=0
CLOSE #1
Der Nachteil dieser Methode ist, dass eine neue Datei mit dem Namen mit der Länge Null erzeugt wird, wenn es die Datei nicht gibt. Diese kannst Du z.B. mit dem KILL-Befehl löschen.
Antwort 9
~~~~~~~~
Du hast verschiedene Möglichkeiten.
Du kannst eine Fehlerbehandlung einbauen, das könnte dann ungefähr so aussehen:
ON ERROR GOTO ErrorHandler
'
fehler = 0
NAME "c:\tmp\test.txt" AS "c:\tmp\test1.txt"
IF fehler = 0 THEN
PRINT "OK"
ELSE
PRINT "Fehler:"; fehler
END IF
'
END
'
'
ErrorHandler:
fehler = ERR
RESUME NEXT
Oder du benutzt eine Routine, welche abprüft, ob die Datei existiert. Ungefähr so:
IF FileExist(file1$) THEN
NAME file1$ AS file2$
PRINT "OK"
ELSE
PRINTt "Fehler !"
END IF
Auf TheShadow's Webseite www.plutomania.de.vu/ bzw http://www.quickbasic.de.vu findest Du unter SUBSAMMLUNG - DATEI die meiner Meinung nach beste FileExist Routine! Diese sieht wie folgt aus:
FUNCTION Datei.Exist (Datei$)
IF INSTR(Datei$, ":") THEN Laufw = ASC(UCASE$(LEFT$(Datei$, 1))) - 64 ELSE Laufw = -1
IF Laufw.Bereit(Laufw) = 0 THEN EXIT FUNCTION
DateiX$ = LTRIM$(RTRIM$(UCASE$(Datei$))) + CHR$(0)
Inter.Dx = VARPTR(DTA)
Inter.Ds = VARSEG(DTA)
Inter.Ax = &H1A00
CALL INTERRUPT(&H21, Inter, InterX)
Inter.Ax = &H4E00
Inter.Cx = 247
Inter.Dx = SADD(DateiX$)
Inter.Ds = VARSEG(DateiX$)
CALL INTERRUPT(&H21, Inter, InterX)
IF (InterX.Fl AND 1) THEN ELSE Datei.Exist = 1
END FUNCTION
Antwort 10
~~~~~~~~~
[ von Frank Neumann ("Triton"; http://www.silizium-net.de , isn-interactive*web.de ), per Mail, 9.9 01 ]
*** Antwort a
wie wär's mit
ON ERROR Gosub NichtDa
OPEN "ss.txt" FOR INPIT AS #1
PRINT "Datei vorhanden!"
END
'
NichtDa:
PRINT "Datei nicht gefunden
END
*** Antwort b
Wenn ich weiß, in welchem Verzeichnis die Datei liegen soll, kann ich einfach alle Dateien(Namen) in eine Datei schreiben lassen und schauen, ob sie(die Datei) dabei ist.
Das geht mit dem DOS Befehl DIR den man dann so anwendet:
SHELL "dir/b/oe/a-d > dir.$$$"
Weiß man nicht, in welchem Verzeichnis die Datei liegt, muss man das gleiche mit Unterverzeichnissen machen und die dann alle nach der ersten Methode durchsuchen lassen. So schreibt man die Verzeichnisse in eine Datei:
SHELL "dir/ad/b > ver.$$$"
Antwort 11
~~~~~~~~~
[ von Manuel ( mk-gamemaker*arcor.de ) im QB-Forum, 27.11.2004 ]
Um zu erkennen, ob eine Datei vorhanden ist, kannst du die ERR-Variable nutzen. Diese Variable gibt bei einer Datei, die nicht existiert, den Wert 53 aus. Mithilfe von "ON ERROR GOTO blabla" am Programmanfang lässt sich jedoch der Fehler abfangen, z.B. so:
ON ERROR GOTO fehler
OPEN "test.txt" FOR INPUT AS #1
vorhanden:
' Er soll das und das machen
END
nichtvorhanden:
' Er soll das und das machen
END
'
fehler:
IF ERR = 53 THEN RESUME nichtvorhanden
Erläuterung: Wenn die Datei "test.txt" nicht vorhanden ist, springt das Programm nach 'fehler:'. Die ERR-Variable speichert, wie gesagt, den aktuellen Fehler. Ist die Fehlernummer 53, springt das Programm mit dem RESUME-Befehl nach 'nichtvorhanden' hin
Antwort 12
~~~~~~~~~
[ von A.K. ( webmaster*iconsoft.de ) im QB-Forum, 29.5.2003 ]
*** Problem
Kann mir jemand den ON ERROR GOTO -Befehl erklären? Ich habe ein Telefonbuch geschreiben. Wenn man beim Suchen vertippt, öffnet mein Programm eine Datei zum Lesen, die noch gar nicht existiert. Z.B.:
cls
open"test.123" for input as #1 'die datei gibt es nicht!
input #1,a$
close #1
Wo muss ich nun den ON ERROR Befehl einfügen damit mein Programm funktioniert? Es soll dann wieder zur ersten Zeile springen, damit der Anwender eine 2. Chance zur korrekten Eingabe des Dateinamens hat, falls er sich vertippt.
*** Lösung
Es gibt 2 Möglichkeiten...
ON ERROR GOTO xxx muss in das Hauptprogramm geschrieben werden. Am besten gleich in die allererste Zeile. Die Sprungmarke zu der er dann springen soll MUSS sich ebenfalls im Hauptprogramm befinden und darf leider nicht in einer SUB/FUNCTION stehen. Das ist übrigens ein Riesen-Nachteil von QBasic und eine große Einschränkung bei komlexen Softwareprojekten!! Das Programm das dann ab der Sprungmarke xxx hingeschrieben ist, MUSS mit einem RESUME enden.
Möglichkeiten hierfür sind RESUME yyy (macht bei einer bestimmten Zeile weiter) oder einfach nur Resume (macht in der nächsten Zeile nach dem Fehler weiter) . Nachteil von ON ERROR ist, das es bei JEDEM Fehler zur Sprungmarke geht. Um was für einen Fehler es sich genau handelt, kann man glaub ich mit ERR herausfinden.
Eine andere Möglichkeit zur Erkennung, ob eine Datei existiert oder nicht, ist diese:
OPEN "test.123" FOR BINARY AS #1
IF LOF(1) = 0 THEN PRINT "Fehler": CLOSE #1: KILL "test.123"
Wenn die Datei schon existiert hat sie auch eine Größe > 0, da ja schon was drinsteht. Wenn sie noch nicht existiert, wird sie neu erstellt und hat die Größe Null. Also heißt das jede Datei die die Größe 0 hat kann vorher nicht existiert haben. Mit BINARY wird der Dateimodus "binär" aktiviert. Das hat den Vorteil, dass eine bereits vorhandene Datei beim Öffnen nicht gelöscht wird.
Answer 13
~~~~~~~~~~~~~~
[ from The Official FidoNet Quick Basic Echo's FAQ, Edited by Greg Easthom ( greg_easthom*bandmaster.bc.ca ), Dec 15, 1999 ]
HOW CAN I CHECK FOR THE EXISTENCE OF A CERTAIN FILE?
There are many ways to do this; this FAQ will cover two of them. One method is to use the error-trapping features of QB (code by David Aukerman):
INPUT "Enter the file to open: ", File$
FileThere% = 1 'assume the file is there
ON ERROR GOTO FileNotFound
OPEN File$ FOR INPUT AS #1
ON ERROR GOTO 0
IF FileThere% = 1 THEN 'if we haven't been proven wrong,
PRINT "The file exists."
ELSE
PRINT "The file does not exist."
END IF
END
FileNotFound:
SELECT CASE ERR
CASE 53: FileThere% = 0 'File not found!!
END SELECT
Another method is to use INTERRUPTs. If you use this one, be sure to load QB with the /L switch. Code by Joe Negron.
DEFINT A-Z
DECLARE FUNCTION Exist% (FileName$)
'***************************************************************
'* FUNCTION Exist% *
'* *
'* PURPOSE *
'* Uses DOS ISR 21H, Function 4EH (Find First Matching *
'* Directory Entry) to determine the existence of FileName$.*
'***************************************************************
FUNCTION Exist% (FileName$) STATIC
DIM IRegsX AS RegTypeX, ORegsX AS RegTypeX
IRegsX.ax = &H4E00
IRegsX.cx = &H3F 'search for all files
FileName$ = FileName$ + CHR$(0) 'must end with null byte
'
IRegsX.ds = VARSEG(FileName$) 'load DS:DX with
IRegsX.dx = SADD(FileName$) 'address of FileName$
'
InterruptX &H21, IRegsX, ORegsX
Exist% = ORegsX.ax = 0 'if ax contains a value,
'remove the null byte
FileName$ = LEFT$(FileName$, LEN(FileName$) - 1)
END FUNCTION |
_________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 08.07.2006, 18:21 Titel: |
|
|
sebastian link reicht.. auch wenn du mod bist  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
BombE
Anmeldungsdatum: 18.01.2006 Beiträge: 31
|
Verfasst am: 08.07.2006, 18:43 Titel: |
|
|
hallo
Vielen Dank für eure schnellen Antworten allerdings habe ich es noch nicht geschafft das Prog zum laufen zu bringen hier ist mahl der komplette Code es geht halt darrum alle 25 sekunden zu gucken ob die Datei existiert und wenn die existirt sie zu löschen damit sie neu gesendet werden kann falls euch das Programm nicht sinfoll erscheint ich brauche es um zu sehen ob ein Rechner im Internet an ist und er soll später in dieser Datei paar Informationen mitsenden ich habb das ganze sogar schohn mit nem Kollegen in C geschrieben allerdings habe ich da Problehme mit der Schleife und ne CPU Auslastung von 100%
Code: |
SHELL "if exist datei.txt del datei.txt"
start:
ON ERROR GOTO fehler
OPEN "I", #1, datei.txt
CLOSE #1
GOTO Ende
Ende:
PRINT "alles ok."
SLEEP 25
GOTO start
fehler:
PRINT "keine Daten empfangen."
SLEEP 25
GOTO start
|
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
BombE
Anmeldungsdatum: 18.01.2006 Beiträge: 31
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
BombE
Anmeldungsdatum: 18.01.2006 Beiträge: 31
|
Verfasst am: 09.07.2006, 10:48 Titel: |
|
|
Vielen Dank das funzt 1a aber was war denn jetzt an meiner qb version falsch ? |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 09.07.2006, 12:02 Titel: |
|
|
An deinem QB ist nichts falsch. Die obige Routine ist nur ein Assemblerprogramm,
das Windows ein bisschen Zeit zum Verschnaufen gibt...
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
BombE
Anmeldungsdatum: 18.01.2006 Beiträge: 31
|
Verfasst am: 09.07.2006, 12:37 Titel: |
|
|
 |
|
Nach oben |
|
 |
Bad_King gesperrt

Anmeldungsdatum: 15.04.2006 Beiträge: 455 Wohnort: nähe Stuttgart
|
Verfasst am: 10.07.2006, 21:15 Titel: :x :x :x :x :x :x :x :hammer: :hammer: :x :x :x |
|
|
Sebastian hat Folgendes geschrieben: | MonsterFAQ hat Folgendes geschrieben: | Frage deutsch
~~~~~~~~~~~~~~
Wie stelle ich fest, ob eine Datei vorhanden ist?
Question English
~~~~~~~~~~~~~~
How can I detect if a certain file is existing or not?
How to figure out whether a file is existing or not?
Antwort 1
~~~~~~~~~~~~~
[ von Thomas Antoni, 26.10.2004 - 5.4.2006 ]
So kann man prüfen, ob eine Datei vorhanden ist:
*** Variante 1: Fehlerauswertung mit ON ERROR
Willst Du feststellen, ob eine -> Sequentiellen Datei vorhanden ist, so musst Du sie erst zum Lesen öffnen. Ist die Datei nicht vorhanden, dann erfolgt eine Fehlermeldung, die Du mit ON ERROR abfangen kannst. Bei -> Direktzugriffsdateien und -> Binärdateien funktioniert das auch, aber dort gibt es eine elegantere Methode, die weiter unten in "Variante 2" erläutert ist.
Mein folgendes Programm "SEQERROR.BAS" zeigt, wie Du das Vorhandensein einer Datei mit ON ERROR fesstellen kannst.
'*********************************************************************
' SEQERROR.BAS = Stellt fest, ob eine sequentielle Datei vorhanden ist
' ============
' (C) Thomas Antoni, 15.5.2005
'*********************************************************************
ON ERROR GOTO fehler
INPUT "Welche Datei wollen Sie oeffnen "; dateiname$
OPEN dateiname$ FOR INPUT AS #1
GOTO weiter
fehler: PRINT "Datei nicht vorhanden!"
INPUT "Geben Sie den korrekten Dateinamen ein"; dateiname$
RESUME 'Ruecksprung zum fehlerverursachenden Befehl
weiter: PRINT "Datei ist vorhanden"
'... Hier folgen die weiteren Befehle
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/seqerror.bas .
Das Programm beendet sich, wenn die eingegebene Datei nicht vorhanden ist. Viel komfortabler wäre es natürlich, wenn Du dem Anwender eine Chance zur Neueingabe des Dateinamens geben würdest. Wie man das realisieren kann, zeigt das folgende Programm:
'****************************************************************************
' FILEXIS2.BAS - Testet ob eine Datei vorhanden ist (Komfort-Version)
' ============
' Dieses Q(uick)Basic-Programm demonstriert, wie man feststellt, ob eine
' Datei vorhanden ist. Der Pfad- und Dateiname wird vom Anwender sooft
' erfragt bis auf die Datei ohne Fehler zugegriffen werden kann.
'
' (c) Thomas Antoni, 5.4.2006
'****************************************************************************
'
ON ERROR GOTO ErrorHandler 'Bei nicht vorhandener Datei
'Fehlerroutine anspringen
Start: 'Wieder-Einsprungstelle bei Fehler (nicht vorhandene Datei)
CLS
IF Fehler% = 1 THEN
COLOR 12, 0 'rot auf schwarz
PRINT "Datei "; path$; " exististiert nicht, bitte richtigen Pfad eingeben!"
COLOR 7, 0 'wieder normale Schrift hellgrau auf schwarz
END IF
'
'------------- Pfad- und Dateinamen erfragen und in path$ hinterlegen
LOCATE 3
PRINT "Gib den Pfad- und Dateinamen ein, z.B. C:\text\meintext.txt"
INPUT path$
'
'----------- Datei oeffnen
Fehler% = 0 'Vorbesetzung: Kein Fehler
OPEN path$ FOR INPUT AS #1
'ist die Datei nicht vorhanden, erfolgt sofort ein Sprung zum ErrorHandler
CLOSE #1
PRINT "Der Pfad ist korrekt eingegeben."
SLEEP 'Warten auf beliebige Taste
END
'
'----------- Fehlerbehandlung falls Datei nicht vorhanden -------------------
ErrorHandler:
Fehler% = 1 'Fehlermerker setzen
RESUME Start 'neue Eingabe
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/filexis2.bas .
*** Variante 2: Dateilänge abfragen
Bei -> Direktzugriffdateien und -> Binärdateien kann man die Dateilänge auf "0" abfragen. Hat eine Datei die Länge Null, dann kann man davon ausgehen, dass sie nicht existiert. Es gibt zwar auch Dateien die keine Daten enthalten. Das siehst Du z.B., wenn Du z.B. ein leeres Programm in der QBasic-Entwicklungsumgebung abspeicherst. In der Programmierpraxis werden solche Leerdateien aber jedoch fast nie vorkommen.
Diese Längenabfrage funktioniert wie folgt:
IF LOF (<Dateinr. ohne #>) > 0 THEN ... 'Dateilänge > 0 ?
Die Methode funktioniert bei Direktzugriffs-Dateien und binären Dateien. Bei sequentiellen Dateien ist sie nur in der Zugriffsart OUTPUT verwendbar.
**** Variante 3
Bei Direktzugriffs-Dateien kannst prüfen, ob ein definiertes Datum z.B. eine "1" aus der ersten Datensatz der Datei rücklesbar ist, siehe TOP96.BAS (). Wenn stattdessen "0" ausgelesen wird, ist die Datei nicht vorhanden.
Welche der 3 genannten Varianten sinnvoll ist, hängt von der Dateiart und der Zugriffsart ab.
Antwort 2
~~~~~~~~~~~~~~~~
[ von Andreas Meile im QB-Forum, 2004 ]
.
Weil in QB so etwas wie file_exists() aus der Programmiersprache PHP fehlt, würde ich doch dafür eine kleine Ersatz-FUNCTION wie folgt implementieren:
'********************************************************
' FILEXIST.EXE = Testet ob eine Datei existiert
' ============
' Dieses QBasic-Programm stellt fest, ob eine Datei
' mit dem angegebenen Pfad- und Dateinamen existiert.
' Es ist ein einfacher Ersatz f?r file_exists() aus PHP
'
' (c) Andreas Meile, 25.10.2004
' ("Dreael"; qbasicde*dreael.ch)
'********************************************************
'
DECLARE FUNCTION DateiExistiert% (d$)
'
INPUT "Dateiname"; d$
'
IF DateiExistiert(d$) THEN
PRINT "Datei "; d$; " existiert."
ELSE
PRINT "Datei "; d$; " gibt es nicht!"
END IF
'
END
'
Fehler:
ex% = 0
RESUME NEXT
'
FUNCTION DateiExistiert% (d$)
SHARED ex%
'
ex% = -1
ON ERROR GOTO Fehler
OPEN d$ FOR INPUT AS 1
CLOSE 1
ON ERROR GOTO 0
DateiExistiert% = ex%
END FUNCTION
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/filexist.bas .
Leider muss der Error-Handler bei Q(uick)Basic (hier die Befehlssequenz nach "Fehler:") im Hauptprogramm platziert sein und daf nicht in einer SUB oder FUNCTION untergebracht sein.
Antwort 3
~~~~~~~~~~~~~
[ im QB-Forum, 26.10.2004 ]
Wenn der Dateiname nicht als Variable im Programm gebraucht wird, kann man eine
Batchdatei oder als Shell-Befehl das ganze recht einfach machen.
*** Codebeispiel mit SHELL
SHELL "if exist c:\file.dat del c:\file.dat"
*** Codebeispiel mit einer Batchdatei namens loesch.bat
Inhalt der Batchdatei loesch.bat:
if exist %1 del %1
Inhalt QB-Programms, das die Batchdatei loesch.bat aufruft:
SHELL "loesch c:\file.dat"
Antwort 4
~~~~~~~~~
[ von BufferUnderrun, 11.1999 ]
.
Das geht gemäß folgender Befehlssequenz:
.
ON ERROR GOTO Handler
INPUT "Welche Datei ist auf ihre Existenz hin zu prüfen? ",datnam$
OPEN "I", #1, datnam$
CLOSE #1
GOTO Ende
Handler:
PRINT "Datei ";datnam$;"nicht gefunden!"
RESUME Ende
Ende:
Wichtig ist, dass die Datei sequenziell im INPUT-Modus geöffnet wird, denn im OUTPUS-Modus würde sie einfach erstellt werden.
Antwort 5
~~~~~~~~
[ von Ch@rly im QB-Forum 29.4.02 ]
.
Es gibt verschiedene Möglichkeiten, das abzuprüfen.
1. Wenn Du weißt, wie die Datei heißt, kannst Du sie einfach öffnen. Wenn das
Geht, dann ist die CD bereit. Z.B. so:
ON ERROR GOTO ErrorHandler:
fehler = 0
kanal = FREEFILE
OPEN "c:\tmp\test.bas" FOR INPUT AS #kanal
IF fehler = 0 THEN
CLOSE #kanal
PRINT "Die Datei existiert !"
ELSE
PRINT "Die Datei existiert nicht !"
END IF
END
ErrorHandler:
fehler = ERR
RESUME NEXT
Diese Methode hat 2 kleine Nachteile. Erstens ist sie so nicht Multi-User-fähig. Wenn die Datei z.B. existiert, aber von einem andern Programm exklusiv geöffnet ist, so kommt es trotzdem beim Öffnen zu einem Fehler. Um dies zu verhindern, müßte man zusätzlich die Fehler Codes abfragen. Zweitens mußt Du den Namen einer Datei kennen, um sie anwenden zu können.
2. Du machst ein Dir in eine Datei und liest diese aus:
ON ERROR GOTO ErrorHandler:
SHELL "dir c:\tmp\*.txt > c:\tmp\test.tmp"
fehler = 0
kanal = FREEFILE
OPEN "c:\tmp\test.tmp" FOR INPUT AS #kanal
IF fehler = 0 THEN
DO
LINE INPUT #kanal, a$
PRINT a$
' Hier die Kontrolle, ob es die Datei gibt.
LOOP WHILE NOT EOF(kanal)
CLOSE #kanal
END IF
KILL "c:\tmp\test.tmp"
END
ErrorHandler:
fehler = ERR
RESUME NEXT
Auch diese Methode hat einen Nachteil, und zwar kann ist das Ergebnis von DIR je nach Betriebssystem unterschiedlich sein. Außerdem ist sie natürlich langsam, da mehrere Male auf das Laufwerk zugegriffen werden muß
3. Du gehst zu www.plutomania.de.vu und dort findest Du unter SUBS – Datei verschiedene Routinen, die bestens funktionieren. Diese arbeiten mit Interupts, so daß sie schnell und ohne die oben beschriebenen Nachteile funktionieren.
Antwort 6
~~~~~~~~~
[ von TT-Soft ( www.East-Power-Soft.de/ ) per Mail, 18.01.2002 ]
.
Das geht mit der folgenden Befehlssequenz:
FileName$ = "BEISPIEL.TXT"
OPEN FileName$ FOR BINARY AS #1:L = LOF(1):CLOSE #1
IF L = 0 then
KILL FileName$
PRINT "Datei nicht vorhanden"
ELSE
PRINT "Datei existiert"
END IF
Antwort 7
~~~~~~~~~
Einfach vorher Fehlerroutine einbauen, dann versuchen Datei zu öffnen, z.B.
ON ERROR GOTO fehler
'
OPEN file$ FOR INPUT AS #1
CLOSE
'
if fehler% = 0 then print "DATEI EXISTIERT!!"
'
fehler:
fehler%=1
RESUME NEXT
Antwort 8
~~~~~~~~~
Wenn du ON ERROR nicht benutzen willst, kannst du's auch so machen:
OPEN "[Datei.ext]" FOR BINARY AS #1
IF LOF(1) < 1 DateiCheck=0
CLOSE #1
Der Nachteil dieser Methode ist, dass eine neue Datei mit dem Namen mit der Länge Null erzeugt wird, wenn es die Datei nicht gibt. Diese kannst Du z.B. mit dem KILL-Befehl löschen.
Antwort 9
~~~~~~~~
Du hast verschiedene Möglichkeiten.
Du kannst eine Fehlerbehandlung einbauen, das könnte dann ungefähr so aussehen:
ON ERROR GOTO ErrorHandler
'
fehler = 0
NAME "c:\tmp\test.txt" AS "c:\tmp\test1.txt"
IF fehler = 0 THEN
PRINT "OK"
ELSE
PRINT "Fehler:"; fehler
END IF
'
END
'
'
ErrorHandler:
fehler = ERR
RESUME NEXT
Oder du benutzt eine Routine, welche abprüft, ob die Datei existiert. Ungefähr so:
IF FileExist(file1$) THEN
NAME file1$ AS file2$
PRINT "OK"
ELSE
PRINTt "Fehler !"
END IF
Auf TheShadow's Webseite www.plutomania.de.vu/ bzw http://www.quickbasic.de.vu findest Du unter SUBSAMMLUNG - DATEI die meiner Meinung nach beste FileExist Routine! Diese sieht wie folgt aus:
FUNCTION Datei.Exist (Datei$)
IF INSTR(Datei$, ":") THEN Laufw = ASC(UCASE$(LEFT$(Datei$, 1))) - 64 ELSE Laufw = -1
IF Laufw.Bereit(Laufw) = 0 THEN EXIT FUNCTION
DateiX$ = LTRIM$(RTRIM$(UCASE$(Datei$))) + CHR$(0)
Inter.Dx = VARPTR(DTA)
Inter.Ds = VARSEG(DTA)
Inter.Ax = &H1A00
CALL INTERRUPT(&H21, Inter, InterX)
Inter.Ax = &H4E00
Inter.Cx = 247
Inter.Dx = SADD(DateiX$)
Inter.Ds = VARSEG(DateiX$)
CALL INTERRUPT(&H21, Inter, InterX)
IF (InterX.Fl AND 1) THEN ELSE Datei.Exist = 1
END FUNCTION
Antwort 10
~~~~~~~~~
[ von Frank Neumann ("Triton"; http://www.silizium-net.de , isn-interactive*web.de ), per Mail, 9.9 01 ]
*** Antwort a
wie wär's mit
ON ERROR Gosub NichtDa
OPEN "ss.txt" FOR INPIT AS #1
PRINT "Datei vorhanden!"
END
'
NichtDa:
PRINT "Datei nicht gefunden
END
*** Antwort b
Wenn ich weiß, in welchem Verzeichnis die Datei liegen soll, kann ich einfach alle Dateien(Namen) in eine Datei schreiben lassen und schauen, ob sie(die Datei) dabei ist.
Das geht mit dem DOS Befehl DIR den man dann so anwendet:
SHELL "dir/b/oe/a-d > dir.$$$"
Weiß man nicht, in welchem Verzeichnis die Datei liegt, muss man das gleiche mit Unterverzeichnissen machen und die dann alle nach der ersten Methode durchsuchen lassen. So schreibt man die Verzeichnisse in eine Datei:
SHELL "dir/ad/b > ver.$$$"
Antwort 11
~~~~~~~~~
[ von Manuel ( mk-gamemaker*arcor.de ) im QB-Forum, 27.11.2004 ]
Um zu erkennen, ob eine Datei vorhanden ist, kannst du die ERR-Variable nutzen. Diese Variable gibt bei einer Datei, die nicht existiert, den Wert 53 aus. Mithilfe von "ON ERROR GOTO blabla" am Programmanfang lässt sich jedoch der Fehler abfangen, z.B. so:
ON ERROR GOTO fehler
OPEN "test.txt" FOR INPUT AS #1
vorhanden:
' Er soll das und das machen
END
nichtvorhanden:
' Er soll das und das machen
END
'
fehler:
IF ERR = 53 THEN RESUME nichtvorhanden
Erläuterung: Wenn die Datei "test.txt" nicht vorhanden ist, springt das Programm nach 'fehler:'. Die ERR-Variable speichert, wie gesagt, den aktuellen Fehler. Ist die Fehlernummer 53, springt das Programm mit dem RESUME-Befehl nach 'nichtvorhanden' hin
Antwort 12
~~~~~~~~~
[ von A.K. ( webmaster*iconsoft.de ) im QB-Forum, 29.5.2003 ]
*** Problem
Kann mir jemand den ON ERROR GOTO -Befehl erklären? Ich habe ein Telefonbuch geschreiben. Wenn man beim Suchen vertippt, öffnet mein Programm eine Datei zum Lesen, die noch gar nicht existiert. Z.B.:
cls
open"test.123" for input as #1 'die datei gibt es nicht!
input #1,a$
close #1
Wo muss ich nun den ON ERROR Befehl einfügen damit mein Programm funktioniert? Es soll dann wieder zur ersten Zeile springen, damit der Anwender eine 2. Chance zur korrekten Eingabe des Dateinamens hat, falls er sich vertippt.
*** Lösung
Es gibt 2 Möglichkeiten...
ON ERROR GOTO xxx muss in das Hauptprogramm geschrieben werden. Am besten gleich in die allererste Zeile. Die Sprungmarke zu der er dann springen soll MUSS sich ebenfalls im Hauptprogramm befinden und darf leider nicht in einer SUB/FUNCTION stehen. Das ist übrigens ein Riesen-Nachteil von QBasic und eine große Einschränkung bei komlexen Softwareprojekten!! Das Programm das dann ab der Sprungmarke xxx hingeschrieben ist, MUSS mit einem RESUME enden.
Möglichkeiten hierfür sind RESUME yyy (macht bei einer bestimmten Zeile weiter) oder einfach nur Resume (macht in der nächsten Zeile nach dem Fehler weiter) . Nachteil von ON ERROR ist, das es bei JEDEM Fehler zur Sprungmarke geht. Um was für einen Fehler es sich genau handelt, kann man glaub ich mit ERR herausfinden.
Eine andere Möglichkeit zur Erkennung, ob eine Datei existiert oder nicht, ist diese:
OPEN "test.123" FOR BINARY AS #1
IF LOF(1) = 0 THEN PRINT "Fehler": CLOSE #1: KILL "test.123"
Wenn die Datei schon existiert hat sie auch eine Größe > 0, da ja schon was drinsteht. Wenn sie noch nicht existiert, wird sie neu erstellt und hat die Größe Null. Also heißt das jede Datei die die Größe 0 hat kann vorher nicht existiert haben. Mit BINARY wird der Dateimodus "binär" aktiviert. Das hat den Vorteil, dass eine bereits vorhandene Datei beim Öffnen nicht gelöscht wird.
Answer 13
~~~~~~~~~~~~~~
[ from The Official FidoNet Quick Basic Echo's FAQ, Edited by Greg Easthom ( greg_easthom*bandmaster.bc.ca ), Dec 15, 1999 ]
HOW CAN I CHECK FOR THE EXISTENCE OF A CERTAIN FILE?
There are many ways to do this; this FAQ will cover two of them. One method is to use the error-trapping features of QB (code by David Aukerman):
INPUT "Enter the file to open: ", File$
FileThere% = 1 'assume the file is there
ON ERROR GOTO FileNotFound
OPEN File$ FOR INPUT AS #1
ON ERROR GOTO 0
IF FileThere% = 1 THEN 'if we haven't been proven wrong,
PRINT "The file exists."
ELSE
PRINT "The file does not exist."
END IF
END
FileNotFound:
SELECT CASE ERR
CASE 53: FileThere% = 0 'File not found!!
END SELECT
Another method is to use INTERRUPTs. If you use this one, be sure to load QB with the /L switch. Code by Joe Negron.
DEFINT A-Z
DECLARE FUNCTION Exist% (FileName$)
'***************************************************************
'* FUNCTION Exist% *
'* *
'* PURPOSE *
'* Uses DOS ISR 21H, Function 4EH (Find First Matching *
'* Directory Entry) to determine the existence of FileName$.*
'***************************************************************
FUNCTION Exist% (FileName$) STATIC
DIM IRegsX AS RegTypeX, ORegsX AS RegTypeX
IRegsX.ax = &H4E00
IRegsX.cx = &H3F 'search for all files
FileName$ = FileName$ + CHR$(0) 'must end with null byte
'
IRegsX.ds = VARSEG(FileName$) 'load DS:DX with
IRegsX.dx = SADD(FileName$) 'address of FileName$
'
InterruptX &H21, IRegsX, ORegsX
Exist% = ORegsX.ax = 0 'if ax contains a value,
'remove the null byte
FileName$ = LEFT$(FileName$, LEN(FileName$) - 1)
END FUNCTION |
|
Ist aber lang .... _________________ Mein Server: http://gianluca.dyndns.org
(Ist meistens nur Tagsüber an) |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 10.07.2006, 21:56 Titel: |
|
|
War ja klar, das du das zitieren musstest
Es wurde schonmal von MisterD gesagt, das Sebastian nur ein Link hätte posten können, da musst du nicht nochmal extra sagen, dass das ein langer text war. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 11.07.2006, 12:11 Titel: |
|
|
@A.K.: Hab' mir jetzt den MFAQ-Artikel nicht komplett durchgelesen, aber: wenn du das so auf einem schreibgeschützten Datenträger machst, gibt's 'nen Fehler.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 11.07.2006, 12:21 Titel: |
|
|
Kann man nicht einfach shell "dir ordner/ >temp.txt" machen?
Ich bin mir nicht sicher, aber der befehl sollte dann DIe Ausgabe von DIR in ne datei umleiten, das könnte man dann ja einlesen und überprüfen, ob die Datei vorhanden ist. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 11.07.2006, 12:25 Titel: |
|
|
Umständlich...
Funktioniert aber bei Datenträgern, die schreibgeschützt oder voll sind oder ein riesigen Ordner haben, in denen das Programm ausgeführt wird, auch nicht (falls man mir folgen kann ).
Gibt doch auch 'nen DOS-Int für, oder? _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
BombE
Anmeldungsdatum: 18.01.2006 Beiträge: 31
|
Verfasst am: 11.07.2006, 13:45 Titel: |
|
|
ich bekomms nicht hinn kann mir villeicht netterweise mal einen code zeigen der einfach nur guckt ob test.txt existirt wenn ja goto ja wenn nein goto nein ? weil ich habb mir diesen langen post mahl durchgelesen und ausprobiert aber immer wieder komemn irgentwelche fehler
 |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|