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:

2t und 4t lezte Zeile einer Datei auslesen

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





BeitragVerfasst am: 07.11.2004, 18:22    Titel: 2t und 4t lezte Zeile einer Datei auslesen Antworten mit Zitat

Wie kann ich bei einer Datei die 2t und die 4t lezte Zeile auslesen ?

Vielen Dank grinsen durchgeknallt
Nach oben
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 07.11.2004, 18:43    Titel: Auslesen Antworten mit Zitat

Hallo.

Code:
OPEN "TEXT.TXT" FOR INPUT AS #1
LINE INPUT #1, temp$
LINE INPUT #1, ZweiteZeile$
LINE INPUT #1, temp$
LINE INPUT #1, VierteZeile$
CLOSE #1


durchgeknallt durchgeknallt durchgeknallt

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
Jean
Gast





BeitragVerfasst am: 07.11.2004, 18:49    Titel: Antworten mit Zitat

Nee sorry, die Datei hat viele Zeilen und nicht nur vier. Ist es sonst übrhaupt ned möglich ?
Nach oben
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 07.11.2004, 18:58    Titel: ... Antworten mit Zitat

Hallo.

Der Source liest einfach nur bis zur 4. Zeile ein und ist dann fertig und schließt die Datei. Ob die Datei noch länger ist, kratzt das Programm überhaupt nicht!!! zwinkern Die kann 100000 Zeilen haben und dennoch funktioniert das Programm.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | 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
Jean
Gast





BeitragVerfasst am: 07.11.2004, 19:07    Titel: Antworten mit Zitat

Es geht hier um die 2t und 4t lezten[b] Zeilen in einer Datei... grinsen
Nach oben
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 07.11.2004, 19:59    Titel: Antworten mit Zitat

UNIX/Linux-Menschen wie ich denken da sofort an den "tail"-Befehl (Microsoft hat halt so etwas nicht ihrem COMMAND.COM/CMD.EXE spendiert!).

In QB müssen wir ganz einfach die Funktionalität von "tail" nachahmen bzw. selber implementieren. Dies ist übrigens nicht einmal so schwierig, wie nachfolgendes Listing zeigt:
Code:
' Dieses Programm simuliert ein "tail -n 20 Datei.txt"
CONST nZeilen% = 20
DIM zeiPuf$(0 TO nZeilen% - 1)
n% = 0
' Lesen
OPEN "datei.txt" FOR INPUT AS 1
WHILE NOT EOF(1)
  LINE INPUT#1, zeiPuf$(n%)
  n% = (n% + 1)MOD nZeilen%
WEND
CLOSE 1

' Ausgeben
FOR i%=0 TO nZeilen% - 1
  PRINT zeiPuf$((n% + i%)MOD nZeilen%)
NEXT i%


@Jean: Für Dein spezielles Problem würde ich unter Linux beispielsweise
Code:
#!/bin/ksh
tail -n 4 datei.txt|awk \
'BEGIN { i=4; } { if(i==4 || i==2) { print $0; } i--; }'

in ein Shellscript schreiben.

In QB wird dasselbe sogar noch einfacher, weil wir nicht wie eine Pipe zuerst alle 4 Zeilen einem Folgeprozess übergeben müssen, sondern aus diesem Puffer-Array gezielt nur das Gewünschte herauspicken:
Code:
' viertletzte und zweitletzte Zeile ausgeben"
DIM zeiPuf$(0 TO 3)
n% = 0
' Lesen
OPEN "datei.txt" FOR INPUT AS 1
WHILE NOT EOF(1)
  LINE INPUT#1, zeiPuf$(n%)
  n% = (n% + 1)MOD 4
WEND
CLOSE 1

letzt4$ = zeiPuf$(n%)
letzt2$ = zeiPuf$((n% + 2)MOD 4)

_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 07.11.2004, 20:10    Titel: Antworten mit Zitat

Zitat:
Es geht hier um die 2t und 4t lezten[b] Zeilen in einer Datei...


Uuups... *schäm* verlegen
_________________

Der Markt regelt das! | 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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. 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