Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
200-ghz
Anmeldungsdatum: 21.02.2009 Beiträge: 16
|
Verfasst am: 24.02.2009, 14:27 Titel: Dateien ganz auslesen |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.02.2009, 14:38 Titel: |
|
|
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 |
|
 |
SvenStueck
Anmeldungsdatum: 12.05.2005 Beiträge: 58
|
Verfasst am: 24.02.2009, 18:55 Titel: |
|
|
bzw. liest INPUT einen Datensatz ein, und LINE INPUT eine Zeile  |
|
Nach oben |
|
 |
200-ghz
Anmeldungsdatum: 21.02.2009 Beiträge: 16
|
Verfasst am: 25.02.2009, 19:05 Titel: |
|
|
Also muss ich was tun??? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 25.02.2009, 19:14 Titel: |
|
|
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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 25.02.2009, 20:59 Titel: |
|
|
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 25.02.2009, 22:13 Titel: |
|
|
SPACE(xfn)? Du willst wirklich die Dateigröße in abhängigkeit von der Dateinummer angeben? 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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 26.02.2009, 03:25 Titel: |
|
|
Jojo hat Folgendes geschrieben: | SPACE(xfn)? Du willst wirklich die Dateigröße in abhängigkeit von der Dateinummer angeben? 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 |
|
 |
200-ghz
Anmeldungsdatum: 21.02.2009 Beiträge: 16
|
Verfasst am: 01.03.2009, 09:56 Titel: |
|
|
Also der Code Funktioniert garnicht..... |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 01.03.2009, 11:31 Titel: |
|
|
Komischerweise liefert mir die Funktion OPEN immer 0, egal ob die Datei geöffnet (und anschließend ausgelesen) werden konnte oder nicht.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 01.03.2009, 14:10 Titel: |
|
|
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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 01.03.2009, 15:17 Titel: |
|
|
@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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 01.03.2009, 15:50 Titel: |
|
|
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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 01.03.2009, 21:53 Titel: |
|
|
ups .. entschuldigung .. du hast natürlich recht. Danke!
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
|