 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
studio
Anmeldungsdatum: 08.08.2005 Beiträge: 34
|
Verfasst am: 24.08.2005, 11:53 Titel: Data File nach Kennzeichen überprüfen |
|
|
Hallo!
Ich habe eine Erfassungdatei erzeugt mit folgendem Aufbau:
z.B: (Typ,Artikel,Menge,Schuhgröße,Einheit)
1,1234567890,1,430,10
Der Benutzer hat die Möglichkeit über eine Tastenkombination den
letzten Artikel als gelöscht zu markieren.
z.B:
1,1234567890,1,430,10
1,1234567890,1,430,12
1,geloescht,1,430,12
Ich ersetze die Artikelnummer einfach durch meine Markierung -> "geloescht"
Im späteren Verlauf könnte das dann folgendermaßen aussehen:
z.B:
1,1234567890,1,430,10
1,geloescht,1,430,10
1,1234567890,1,430,10
1,1234567890,1,430,12
1,geloescht,1,430,12
1,geloescht,1,430,12
Aus diesen Informationen möchte ich jetzt eine weitere Datei, ohne die
markierten Artikel mit dem Hinweis "geloescht", erstellen die dann
folgendermaßen aussehen sollte:
1,1234567890,1,430,10
1,1234567890,1,430,10
1,1234567890,1,430,12
Über eine kleine Hilsfestellung würde ich mich sehr freuen.
Gruß
studio |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 24.08.2005, 12:22 Titel: |
|
|
Hallo.
Du möchtest also eine CSV-Datei nach dem Kriterium gelöscht oder nicht filtern. Das geht so:
Code: | OPEN "LALALA.TXT" FOR INPUT AS #1 'Quelldatei
OPEN "FERTIG.TXT" FOR OUTPUT AS #2 'Zieldatei
DO UNTIL EOF(1)
INPUT #1, Typ%, Artikel$, Menge%, Schuhgr%, Einheit%
IF LCASE$(Artikel$) <> "geloescht" THEN 'Durch lcase spielt Gr./Kl.-Schreibung keine Rolle mehr
WRITE #2, Typ%, Artikel$, Menge%, Schuhgr%, Einheit%
END IF
IF EOF(1) THEN EXIT DO
LOOP
CLOSE #1
CLOSE #2
PRINT "Daten überprüft und gefiltert."
SLEEP: END |
Wichtig ist, dass du um die Artikel-Nr und um geloescht Anführungszeichen setzt. Ansonsten wird das Ganze gleich viel komplizierter.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
studio
Anmeldungsdatum: 08.08.2005 Beiträge: 34
|
Verfasst am: 24.08.2005, 13:05 Titel: |
|
|
Hallo Sebastian,
vielen Dank für die schnelle Antwort ... ich werde mich gleich an die Arbeit
machen und Deinen Vorschlag prüfen. Nicht dass ich Dir und Deinen Codezeilen nicht
glauben schenken würde, aber ich verwende ein anderes BASIC Derivat ->
BHT-Basic und da gibt es zum Bespiel kein DO LOOP oder FOR INPUT.
Natürlich lässt sich das durch andere Funktionen bzw. Optionen ersetzen.
Mal sehen wie ich das Kind in die Wiege bekomme.
Dennoch vielen Dank erstmal .... Resultat folgt.
Gruß
studio |
|
Nach oben |
|
 |
studio
Anmeldungsdatum: 08.08.2005 Beiträge: 34
|
Verfasst am: 24.08.2005, 13:21 Titel: |
|
|
Hallo!
Problem wurde folgendermaßen gelöst:
--
Code: |
OPEN DatName$ AS #DatFile%
FIELD #DatFile% , 1 AS TypD$, 20 AS BarCodeD$, 1 AS MengeD$, 3 AS GroesseD$, 2 AS EinheitD$
DatLaenge% = LOF(#DatFile%)
OPEN InvName$ AS #InvFile%
FIELD #InvFile% , 250 AS InvPuffer$
FOR i% = 1 TO DatLaenge%
GET #DatFile%
IF BarCodeD$ <> "geloescht" THEN
InvPuffer$ = TypD$+","+BarCodeD$+","+MengeD$+","+GroesseD$+","+EinheitD$
PUT #InvFile%
END IF
NEXT i%
CLOSE #InvFile%
CLOSE #DatFile%
|
Vielen Dank für Deine Unterstützung.
Gruß
studio |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
|
|
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.
|
|