Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Dateien ganz auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
200-ghz



Anmeldungsdatum: 21.02.2009
Beiträge: 16

BeitragVerfasst am: 24.02.2009, 14:27    Titel: Dateien ganz auslesen Antworten mit Zitat

Hallo,
Ich würde gerne eine txt-Datei öffnen und den inhalt wiedergeben
So sieht das jetzt aus:
################
dim text as string
open "C:\meinetxt.txt" for input as #1
input #1 , text
close #1
(kill "C:\meinetxt.txt")
print text
################
(Ich hab das löschen nur zum spass gemacht)
Jetzt starte ich das Programm und stelle fest,dass aus meiner txt nur
die Erste Zeile gezeigt wird.
Dar ich den gesammten inhalt haben will stellt sich die frage:
Wie geht das ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 24.02.2009, 14:38    Titel: Antworten mit Zitat

Weil "Input" zeilenweise einliest, wie der Referenz zu entnehmen ist.
Code:

While Not Eof(1)
  Line Input #1, text
  print text
Wend

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 24.02.2009, 18:55    Titel: Antworten mit Zitat

bzw. liest INPUT einen Datensatz ein, und LINE INPUT eine Zeile zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
200-ghz



Anmeldungsdatum: 21.02.2009
Beiträge: 16

BeitragVerfasst am: 25.02.2009, 19:05    Titel: Antworten mit Zitat

Also muss ich was tun???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 25.02.2009, 19:14    Titel: Antworten mit Zitat

Zum Beispiel den Code verwenden, den Jojo oben abgetippt hat? Davor noch den OPEN-Befehl setzen ...
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 25.02.2009, 20:59    Titel: Antworten mit Zitat

Code:

Dim xfn as integer = freefile
if open("bla.txt" for binary as #xfn) = 0 then print "kann datei nciht öffenen!": end -1
dim D as string = space(lof(xfn))
get #xfn, 1, D
close #xfn
print D


eine datei in einer variable. (geht aber wohl nur bis dateigrössen von ca. 100KByte


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]


Zuletzt bearbeitet von ThePuppetMaster am 26.02.2009, 03:23, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 25.02.2009, 22:13    Titel: Antworten mit Zitat

SPACE(xfn)? Du willst wirklich die Dateigröße in abhängigkeit von der Dateinummer angeben? lachen Das muss LOF(xfn) heißen.
Und das geht mit Dateien bis zu <Dateigrößen-Maximum des OS hier einsetzen> Kbyte.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 26.02.2009, 03:25    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
SPACE(xfn)? Du willst wirklich die Dateigröße in abhängigkeit von der Dateinummer angeben? lachen Das muss LOF(xfn) heißen.

Ups .. stimmt .. sry. -> korrigiert

Jojo hat Folgendes geschrieben:
Und das geht mit Dateien bis zu <Dateigrößen-Maximum des OS hier einsetzen> Kbyte.
Öm .. das dachte ich auch, bis ich das gegenteil heraus fand. Es ist zwar möglich einen speicher dieser grösse zu allocieren, jedoch gibt es probleme auf ihn zuzugreifen, wenn man bei RTLIB integirten funktionen bleibt.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
200-ghz



Anmeldungsdatum: 21.02.2009
Beiträge: 16

BeitragVerfasst am: 01.03.2009, 09:56    Titel: Antworten mit Zitat

Also der Code Funktioniert garnicht.....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 01.03.2009, 11:31    Titel: Antworten mit Zitat

Komischerweise liefert mir die Funktion OPEN immer 0, egal ob die Datei geöffnet (und anschließend ausgelesen) werden konnte oder nicht. neutral
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 01.03.2009, 13:08    Titel: Antworten mit Zitat

Hallo!
200-ghz hat Folgendes geschrieben:
Also der Code Funktioniert garnicht.....

nemored hat Folgendes geschrieben:
Komischerweise liefert mir die Funktion OPEN immer 0, egal ob die Datei geöffnet (und anschließend ausgelesen) werden konnte oder nicht. neutral

Laut Referenzeintrag zu OPEN heißt 0 ja auch, dass alles geklappt hat. zwinkern

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 01.03.2009, 14:10    Titel: Antworten mit Zitat

Stimmt - ich vergaß, dass die Datei neu angelegt wird, wenn sie noch nicht existiert ...
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 01.03.2009, 15:17    Titel: Antworten mit Zitat

@200-ghz
Du musst natürlich den Code etwas anpassen, so das er deinen bedürfnissen entspricht.
Ideal wäre, wenn du z.B. den Pfad entsprechend anpasst, der auf deien Datei zeigt, oder eine Commandozeile als Pfadangabenutzt.

Code:
Dim XPath as String = Command()

Anschliessend wäre es sinvoll erstmal zu prüfen, ob die Datei überhaupt existiert, und ob es eine Datei ist.
Code:
If Right(XPath, 1) = "/" Then Print "Path ist keine Datei!": End 'Für windows
If Right(XPath, 1) = "\" Then Print "Path ist keine Datei!": End 'für linux
If Dir(XPath, -1) = "" Then Print "Datei existiert nicht!": End


Das ganze dann noch in den bereits vorhandene coden hinzufügen und die angabe des Paths im Open-Befehl entpsrechend auf die Variable XPath abändern...
Code:
If Right(XPath, 1) = "\" Then Print "Path ist keine Datei!": End
If Right(XPath, 1) = "/" Then Print "Path ist keine Datei!": End
If Dir(XPath, -1) = "" Then Print "Datei existiert nicht!": End
Dim xfn as integer = freefile
if open(Dir(XPath,for binary as #xfn) <> 0 then print "kann datei nciht öffenen!": end -1
dim D as string = space(lof(xfn))
get #xfn, 1, D
close #xfn
print D


Nach dem Compilieren erhälst du eine Binardatei mit <sonstwas>.exe .. z.B. "Dateieinlesen.exe"

Um damit eine Datei einzulesen gibst du in der commandozeile ein:
Code:
dateieinlesen.exe C:\meinetxt.txt

woraufhin das Programm prüft, ob die datei existiert, sie eine datei ist, und anschliessend öffnet und ausgibt.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]


Zuletzt bearbeitet von ThePuppetMaster am 01.03.2009, 21:52, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 01.03.2009, 15:50    Titel: Antworten mit Zitat

Muss trotzdem heißen
Code:
IF OPEN(DIR(XPath) FOR BINARY AS #xfn) <> 0 THEN PRINT "kann datei nicht öffenen!": END -1

(<> statt = )
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 01.03.2009, 21:53    Titel: Antworten mit Zitat

ups .. entschuldigung .. du hast natürlich recht. Danke!


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz