For/Next schleife für Dateien
Übersicht

![]() |
AlkanBetreff: For/Next schleife für Dateien |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi leute! ![]() Also ich wollte mal Lines aus einer Datei auslesen doch damit ich ja nicht alles 1000 Zeilen mit ReadLine einzeln auslesen muss wollte ich eine For/Next Schleife einbauen Doch da liest und zeigt es ja immer nur die 1.Zeile Ich hab auch mal nachgesehen ob es eine Funktion gibt die die anzahl der lines ermittelt doch ich hab nichts gefunden Ich wer froh wenn ihr mir helfen könnt Danke im vorraus MfG Alkan Edit:Ok! Dann ist hier mal der Code: Code: [AUSKLAPPEN] Graphics 640,480,0,2
Global filename$ Print "Press Enter to continiue" Repeat If KeyDown(28)Then filenam() Until KeyHit(1) End Function mode() modus%=Input("Select Mode (1=Read,2=Write): ") Select modus% Case 1 readfi Case 2 writefi Default Print "Please Select Mode 1 or Mode 2!" End Select End Function Function filenam() FlushKeys filename$=Input("FileName(+FilePos): ") filename$=filename$+".package" mode() End Function Function readfi() file=ReadFile(filename$) If file=0 Then Print "File does not exist!" For i=0 To Eof(file) dd$=ReadLine(file) Next For i=0 To Eof(file) Print dd$ Next End Function Function writefi() End Function P.S. Hab fast alle Smileys entfernt Edit:oh..habs grade gelöst! Hab das wohl übersehen https://www.blitzforum.de/help/Eof Und danke an euch! Edit:Und da wäre noch eine Frage: Wie kann man den Error balken abschalten? Ich hab schon folgendes probiert: Code: [AUSKLAPPEN] If file=0 then Runtimeerror=false
Also dass da dann nicht mehr Error!Stream does not exist!"steht und das programm endet sondern dass es im Programm steht und nicht endet? MfG Alkan |
||
Hauptrechner: Win7 Ultimate x64|AMD Phenom II X4 965 BlackEdition 4x3.4GHz|4 GB DualKit DDR3-1600 Ram|1.5 TB Samsung EcoGreen|Cougar CM 700Watt|ASRock M3A790GFX/120M|Nvidia GeForce 9500GT|Ati Radeon HD3300(Onboard-Deaktiviert)
Server(früher Hauptrechner): Ubuntu 9.1 x86|Intel P4 HT 3GHz|Ati Radeon X600Pro|200 GB HDD Worklog: Planetensimulation Homepage(Under Construction): alkan96.dyndns.org Wenn schon falsch, dann richtig falsch. |
- Zuletzt bearbeitet von Alkan am Mo, Jan 25, 2010 22:11, insgesamt 4-mal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weniger Smiliys und mehr Erklärung was du machen möchtest, wäre hilfreich.
Eine Datei endet bei EoF ![]() |
||
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) |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich versteh das auch nicht so ganz. Aber Glückwunsch, so viele verschiedene Smilies in einem Beitrag hat bisher noch keiner geschafft.
Edit: Was heißt nur die erste Zeile? Normalerweise werden die Zeilen nacheinander ausgelesen, egal ob Schleife oder nicht. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du jede Zeile nur in deiner dd Variable speicherst, wird die Variable natürlich jedesmal überschrieben.
Wenn du es unbedingt in zwei For Schleifen machen mußt, dann mußt du alle Zeilen in ein Array z.B. einlesen. Oder du setzt das readline und das print in dieselbe For Schleife... |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ganz klar:
Code: [AUSKLAPPEN] Function readfi()
file=ReadFile(filename$) If file=0 Then Print "File does not exist!" For i=0 To Eof(file) dd$=ReadLine(file) Next For i=0 To Eof(file) Print dd$ Next End Function Hier liegt der Fehler begraben. Du liest erstmal alle Zeilen nacheinander in die Variable dd(was für ein Name ![]() Das könnteste folgendermaßen lösen: Code: [AUSKLAPPEN] Function readfi()
file=ReadFile(filename$) If file=0 Then Print "File does not exist!" Repeat Print ReadLine(file) Until Eof(file) End Function So sparst du dir die Variable. Da die Zeile, die aus der Datei gelesen wird direkt an Print weitergegeben wird. Eof ![]() 1= Ende der Datei erreicht 0= Ende nicht erreicht Wenn du die Werte später noch gespeichert brauchst, wirst du Dim ![]() mfg Thunder Edit: zu spät. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
- Zuletzt bearbeitet von Thunder am Mo, Jan 25, 2010 22:08, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] For i=0 To Eof(file) Dann schau dir in der OH nochmal an, welche Werte Eof zurückliefert. Zeilen sind das nicht!
Es ginge... Code: [AUSKLAPPEN] Repeat
Print(ReadLine(file)) Until Eof(file) |
||
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) |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
sorry - falscher Button | ||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich empfehle mal das Datei-Lesen Tutorial:
https://www.blitzforum.de/foru...hp?t=33651 und vielleicht noch das DIM-Tutorial: https://www.blitzforum.de/foru...048#354048 |
||
![]() |
beanage.johannes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein while/wend loop eignet sich besser als repeat/until oder for/next | ||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo unterscheidet sich while/wend von repeat/until, außer das die abfrage ob die bedingung zutrifft beim ersten am anfang steht und beim zweiten am ende? | ||
Warbseite |
![]() |
Chrise |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cgamer hat Folgendes geschrieben: Wo unterscheidet sich while/wend von repeat/until, außer das die abfrage ob die bedingung zutrifft beim ersten am anfang steht und beim zweiten am ende?
genau da ist de unterschied. Manchmal musst du am Ende der schleife wissen, ob eine bedingung erfüllt ist, damit die schleife beendet wird. Manchmal musst du wissen, ob eine schleife überhaupt erst beginnen soll. |
||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist im Wesentlichen der Unterschied:
Code: [AUSKLAPPEN] a=10 While a < 10 a = a+1 Print "while:"+a Wend b=10 Repeat b = b+1 Print "repeat:"+ b Until b>=10 WaitKey() Repeat wird mindestens einmal durchlaufen, while nicht unbedingt. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gut zu wissen. Dann weiß ich jetzt auch warum mein Programm ständig crasht. | ||
Warbseite |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group