Funktion zum Text zeilenweise auslesen
Übersicht

![]() |
KnorxThieusBetreff: Funktion zum Text zeilenweise auslesen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich versuche mich gerade an einer -eigentlich- einfachen Funktion, mit der ich einen text zeilenweise auslesen kann. Das brauche ich für ein Programm, das einen Dateitext mehrmals ausliest. Also habe ich die Datei in einen String kopiert und will jetzt ReadLIne ![]() BlitzBasic: [AUSKLAPPEN] Function GetRow$(txt$, row = 1) Achso, die Variablen stehen für hat Folgendes geschrieben: c$ ==> cutted - geschnitten
tmpc$ ==> temporärer Schniitt - Damit der Zeilenumbruch nicht mit ausgegeben wird Tja, hier bin ich stecken geblieben HIlfe! mfg KT-Noob ;GetFileText funktioniert! |
||
Version: BlitzPlus / Blitz+ |
- Zuletzt bearbeitet von KnorxThieus am So, Apr 22, 2012 14:54, insgesamt einmal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wo ist die Fehlerbeschreibung? Was geht nicht bzw. fehlt? | ||
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 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Immer wieder den gesamten Text zu zerteilen ist nicht unbedingt optimal. Zähle die Zeilen, Spring zum Anfang zurück und lies alles in ein passendes Array ein.
![]() ![]() ...und bitte benutze keine >|<speziellen>|< Zeichen als Textauszeichnung im Titel, das findet doch dann niemand über die Suche. |
||
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) |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Array?
@BladeRunner: Funktioniert gar nicht |
||
Version: BlitzPlus / Blitz+ |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dim![]() "Funktioniert nicht" ist keine Fehlerbeschreibung. Was soll passieren, was passiert stattdessen? |
||
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) |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ziel: Rückgabe der per row-Parameter eingegebenen Zahl
Fehler: Es werden - es sei denn, die ausgewählte Zeile enthält keine Zeichen - alle Zeilen bis zur ausgewählten zurückgegeben. (Soll ich das oben per EDIT anhängen?) Zum Array: Ich probiere mal, aber ich glaube das ändert nichts an der Sachlage. EDIT: Eh, wird wohl länger dauern. Hatte mal nen Crash und muss erst meine Zeilenzählfunktion suchen... ![]() EDIT: Diese Zeilenzählfunktion diente nur dem Zählen von Dateien. Wenn ich das jetzt einem Text anpasse, müsste ich ja einen Ersatzbefehl für ReadLine finden: GetRow! Uahhh.... |
||
Version: BlitzPlus / Blitz+ |
- Zuletzt bearbeitet von KnorxThieus am So, Apr 22, 2012 15:52, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Variablen a, b und c zu nennen ist suboptimal.
und wie sollen row und tmpc$ hier verknüpft sein? Code: [AUSKLAPPEN] b <> row tmpc$ = " "
Schreibe Then ![]() Wenn jede Zeile in einem Feld vom Array steht, kannst du sie direkt ansprechen - Stringoperationen sind nicht nötig. |
||
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) |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dass KnorxThieus, Xeres hat Folgendes geschrieben: BlitzBasic: [AUSKLAPPEN]
If tmpc$ = "" And b <> row tmpc$ = " " Wenn noch nicht die letzte Zeile erreicht ist und in der aktuellen nichts steht, dann füge ein Leerzeichen ein, damit das Beispielprogramm nicht Schluss macht! Dämlich. Ich weiß, ich hätte das Beispielprogramm anpassen sollen.. [Siehe EDIT2 im letzten Beitrag] Diese Schleifensituation... was mache ich da? |
||
Version: BlitzPlus / Blitz+ |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn Du nach einem best. Zeichen im Text suchen willst, musst Du nicht en Text Zeichen für Zeichen durchgehen, sondern kannst mit der Funktion INSTR() sofort die nächste Position dieses Zeichens im Text erfahren:
BlitzBasic: [AUSKLAPPEN]
|
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke, aber ich komme hier einfach nicht mit der Logik klar: Wie muss ich die Befehle mit einander verknüpfen? ![]() |
||
Version: BlitzPlus / Blitz+ |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nach deiner Beschreibung des Ziels der neu zu entwickelnden Funktion, suchst Du scheinbar nach einer Funktion, die eine bestimmte Zeile aus der Datei herauspickt, z.B. die 5. Zeile?
Aber genau das kann doch schon die Standard-Routine zum Dateilesen: BlitzBasic: [AUSKLAPPEN] Stream=ReadFile("datei.txt") ReadLine() liest ja genau ZEILENWEISE! Hier müsstest Du jetzt doch nur noch bei einem best i% abbrechen und Txt$ zurückgeben, oder? Trotzdem hast die gesamte Datei zu einen String verbacken, in dem nun bereits mehrere CHR(10) sind. Aber auch dann lässt sich jeder Zeile wieder trennen: Das war mein Beispel, hier mal als Funktion: BlitzBasic: [AUSKLAPPEN]
Beschreib doch mal genauer wo das ganze eingesetzt wird.... Und beschreib auch bitte, warum Du glaubst, dass man die Datei mehrfach einlesen müsste? |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstens: Ich habe meinen text nicht mehr als Datei?
2. Dein Bsp. funktioniert bei mir nicht ![]() 3. In einem simplen Versuch eines Translaters... für jedes Wort das gesamte Vokabular. 6. Lagsam verlier ich den Überblick... ich brauche die vokabeldatei als variablen aray... hab wohl falsch angefangen,,, ![]() BlitzBasic: [AUSKLAPPEN] file$ = RequestFile$() Sorry leute Code: [AUSKLAPPEN] .error159="Festplattedurchgeschmort"
usern$="KnorxThieus" |
||
Version: BlitzPlus / Blitz+ |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaube, jetzt bist du auf dem richtigen Weg! Deine erste Version war viel zu sehr "um die Ecke gedacht". Jetzt hört sich das viel klarer an. | ||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
schön. ![]() |
||
Version: BlitzPlus / Blitz+ |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alles, was du öffnest, solltest du auch wieder schließen; CloseFile![]() ![]() |
||
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) |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
mir bekannt ![]() blöd sind bloß diese globalen... die man nicht in der funktion erstellen darf ![]() |
||
Version: BlitzPlus / Blitz+ |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum tust du es dann nicht? Es könnte mysteriöse Speicher/Ladefehler ergeben, wenn du alle Streams offen lässt.
Um Globale Variablen kommt man manchmal nicht herum, dass sollte man halt nur auf das nötigste reduzieren. Das Array musst du zwar im Hauptprogramm das erst mal angeben, aber danach kannst du es in der Funktion einfach vergrößern: BlitzBasic: [AUSKLAPPEN] Dim Zeilen$(0) |
||
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) |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach! Das kannte ich noch nicht.
Danke ![]() EDIT: und als ich jetzt in meine funktion-include-file reinsetze: "duplicate indentifier" als ich rausnehme(aus den globalen): "array not found in main programm" ha? ![]() |
||
Version: BlitzPlus / Blitz+ |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
...wie immer: ohne Code kann man lange raten... | ||
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) |
![]() |
KnorxThieus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bitte!
Wenn was fehlt, must du mirs sagen |
||
Version: BlitzPlus / Blitz+ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group