EOF() bei Textdateien [ERLEDIGT]
Moderator: Moderatoren
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Martin,
ich habe heute wohl zu wenig Nahrung zu mir genommen, ich verstehe den 2.Satz nicht.
ich habe heute wohl zu wenig Nahrung zu mir genommen, ich verstehe den 2.Satz nicht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
dann solltest Du das schleunigstens ändern: Guten Appetit!
Habe gerade gesehen, dass mein 2. Satz einen vorwurfsvollen Ton implizeren könnte - war aber ganz anders gemeint!
Was ich sagen wollte:
Wenn Du die Sachen im 1. Satz erledigt hast, kannst Du wie bisher weitermachen, nur mit Datei B - brauchst also ausser dem Namen der zu verarbeitenden Datei an Deinem eigentlichen import nichts ändern (wohlgemerkt, nachdem Du das Suchen und Ersetzen erledigt hast).
Viele Grüße,
Martin
dann solltest Du das schleunigstens ändern: Guten Appetit!
Habe gerade gesehen, dass mein 2. Satz einen vorwurfsvollen Ton implizeren könnte - war aber ganz anders gemeint!
Was ich sagen wollte:
Wenn Du die Sachen im 1. Satz erledigt hast, kannst Du wie bisher weitermachen, nur mit Datei B - brauchst also ausser dem Namen der zu verarbeitenden Datei an Deinem eigentlichen import nichts ändern (wohlgemerkt, nachdem Du das Suchen und Ersetzen erledigt hast).
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Martin,
Gut, aber wenn ich den 1.Durchlauf machen muß/soll, dann kann ich auch gleich meine alte Routine wieder einbauen, die spart mir dann den 2. Durchlauf. Denke ich jetzt mal so.
Boh ey, hab ich nen Kohldampf. Das werde ich jetzt mal schnell abstellen.....
Bevor ich hier gar nichts mehr kapiere.
Gut, aber wenn ich den 1.Durchlauf machen muß/soll, dann kann ich auch gleich meine alte Routine wieder einbauen, die spart mir dann den 2. Durchlauf. Denke ich jetzt mal so.
Boh ey, hab ich nen Kohldampf. Das werde ich jetzt mal schnell abstellen.....
Bevor ich hier gar nichts mehr kapiere.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Manfred,
überlege doch mal. Du hast ein Importprogramm, das mit sauberen Dateien funktioniert. Und du hast eine unsaubere Datei (damit muss man immer rechnen).
Nun musst du - wie Martin schon sagte - nur die Dateien von eventuellem 'Schmutz' (chr(26) und chr(0) reinigen, wobei du beide durch Blanks ersetzt ( Löschen wäre wohl falsch, da die Satzlänge nicht geändert werden darf !).
Also statt wie bisher:
1.... Dateiauswahl und irgendwas
2. Importroutine(TextDatei)
rufst du nun die Reinigung dazwischen auf:
1.... Dateiauswahl und irgendwas
2. Reinigen mit strtran(cTxt,chr(26),space(1)) ....-> TempTextDatei
3. Importroutine(TempTextDatei)
überlege doch mal. Du hast ein Importprogramm, das mit sauberen Dateien funktioniert. Und du hast eine unsaubere Datei (damit muss man immer rechnen).
Nun musst du - wie Martin schon sagte - nur die Dateien von eventuellem 'Schmutz' (chr(26) und chr(0) reinigen, wobei du beide durch Blanks ersetzt ( Löschen wäre wohl falsch, da die Satzlänge nicht geändert werden darf !).
Also statt wie bisher:
1.... Dateiauswahl und irgendwas
2. Importroutine(TextDatei)
rufst du nun die Reinigung dazwischen auf:
1.... Dateiauswahl und irgendwas
2. Reinigen mit strtran(cTxt,chr(26),space(1)) ....-> TempTextDatei
3. Importroutine(TempTextDatei)
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Leute,
macht mich jetzt nicht nervös....
1) Die Felder werden mit TAB getrennt und müssen nicht gleich groß sein.
2) Wenn ich doch erstmal die Zeilen durchwusel und nach evtl. defekten Zeichen suche, dann kann ich doch direkt den Rest gleich mitmachen.
3) Warum soll ich dann nochmals umkopieren und dann erneut mit DELDBE öffnen und alles nochmals durchlaufen?
4) Ich wollte doch die DELDBE benutzen weil es so schön einfach ist. Warum das Rad immer wieder neu erfinden.
Meine Frage war doch am Anfang nur, ob einer eine Idee hat woran es liegen kann. Das Problem ist erkannt, es ist ein Schrottzeichen. Jetzt warte ich auf die kalte Ecke aus Hessen was die dazu zu sagen hat.
So hungrig kann ich doch nicht sein, dass ich dass alles hier nicht verstehe.
Was wir noch machen könnten, wäre meinen Quellcode analysieren, ob er überhaupt vernünftig war, als ich zeichenweise durchsucht habe. Ich werde ihn gleich, wenn ich gemampft habe, suchen und dann mal hier einstellen.
Aber nichtsdestotrotz prima, dass ihr so bei der Sache seit....
macht mich jetzt nicht nervös....
1) Die Felder werden mit TAB getrennt und müssen nicht gleich groß sein.
2) Wenn ich doch erstmal die Zeilen durchwusel und nach evtl. defekten Zeichen suche, dann kann ich doch direkt den Rest gleich mitmachen.
3) Warum soll ich dann nochmals umkopieren und dann erneut mit DELDBE öffnen und alles nochmals durchlaufen?
4) Ich wollte doch die DELDBE benutzen weil es so schön einfach ist. Warum das Rad immer wieder neu erfinden.
Meine Frage war doch am Anfang nur, ob einer eine Idee hat woran es liegen kann. Das Problem ist erkannt, es ist ein Schrottzeichen. Jetzt warte ich auf die kalte Ecke aus Hessen was die dazu zu sagen hat.
So hungrig kann ich doch nicht sein, dass ich dass alles hier nicht verstehe.
Was wir noch machen könnten, wäre meinen Quellcode analysieren, ob er überhaupt vernünftig war, als ich zeichenweise durchsucht habe. Ich werde ihn gleich, wenn ich gemampft habe, suchen und dann mal hier einstellen.
Aber nichtsdestotrotz prima, dass ihr so bei der Sache seit....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Manfred.
Es wird ein Zeichen als EoF() interpretiert, obwohl das physikalische EoF() noch nicht erreicht ist. Wenn Du die Datei einliest, mit StrTran() (eine Zeile Code!) das Zeichen entfernst und danach das ganze wieder schreibst, was insgesamt drei (!) Zeilen Code wären, müßtest Du am Rest - also am vorhandenen Code - nichts mehr ändern. Das war, was Dir die Jungs zu sagen versucht haben.
Es wird ein Zeichen als EoF() interpretiert, obwohl das physikalische EoF() noch nicht erreicht ist. Wenn Du die Datei einliest, mit StrTran() (eine Zeile Code!) das Zeichen entfernst und danach das ganze wieder schreibst, was insgesamt drei (!) Zeilen Code wären, müßtest Du am Rest - also am vorhandenen Code - nichts mehr ändern. Das war, was Dir die Jungs zu sagen versucht haben.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Mooooment,
ich verstehe das jetzt so:
1) Ich öffne die Datei über Lowlevel
2) ich suche und tausche das Zeichen (wenn nötig)
3) schreibe Lowlevel wieder zurück
3a) schließe die Datei wieder
4) Öffne mit DELDBE
5) Mache meine Ding mit Skip usw.
6) schließe wieder...
war das so gemeint?
ich verstehe das jetzt so:
1) Ich öffne die Datei über Lowlevel
2) ich suche und tausche das Zeichen (wenn nötig)
3) schreibe Lowlevel wieder zurück
3a) schließe die Datei wieder
4) Öffne mit DELDBE
5) Mache meine Ding mit Skip usw.
6) schließe wieder...
war das so gemeint?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Manfred hat geschrieben:Mooooment,
ich verstehe das jetzt so:
1) Ich öffne die Datei über Lowlevel
2) ich suche und tausche das Zeichen (wenn nötig)
3) schreibe Lowlevel wieder zurück
3a) schließe die Datei wieder
4) Öffne mit DELDBE
5) Mache meine Ding mit Skip usw.
6) schließe wieder...
war das so gemeint?
GENAU SO war das gemeint
und anders geht es auch nicht, denn sowohl DELDBE als auch ReadStr() werden NIEMALS nach dem chr(26) weiter lesen
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
So, liebe Leute,
vorläufiges Ergebnis:
PDR #5994
vorläufiges Ergebnis:
PDR #5994
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Hubert,
hm, ich habe diesen PDR gestern nicht gefunden, weil dort stand, er wäre noch nicht public. Also habe ich ihn auch noch nicht gelesen.
Es geht aber um etwas ganz anderes:
Die Erklärung dazu heißt folgendermaßen (sinngemäß von mir wiedergegeben):
Die Reaktion der Engine ist richtig, aber nicht mehr zeitgemäß, weil dies vor allem da ja Dateien auf File-Systemen
über eine Dateilänge verfügen und nicht wie früher Magnetbänder immer als
Datenstrom gelesen werden müssen um die Größe somit das Ende der
Datei zu erfahren.
Jetzt stellt sich nur die Frage, was passiert nun?
Ich vermute einmal, das das Problem bei einem etwas anderen Handling nicht mehr auftreten wird/würde. Das entscheidet aber Alaska nun selbst, was sie wie lösen werden/möchten.
hm, ich habe diesen PDR gestern nicht gefunden, weil dort stand, er wäre noch nicht public. Also habe ich ihn auch noch nicht gelesen.
Es geht aber um etwas ganz anderes:
Die Erklärung dazu heißt folgendermaßen (sinngemäß von mir wiedergegeben):
Die Reaktion der Engine ist richtig, aber nicht mehr zeitgemäß, weil dies vor allem da ja Dateien auf File-Systemen
über eine Dateilänge verfügen und nicht wie früher Magnetbänder immer als
Datenstrom gelesen werden müssen um die Größe somit das Ende der
Datei zu erfahren.
Jetzt stellt sich nur die Frage, was passiert nun?
Ich vermute einmal, das das Problem bei einem etwas anderen Handling nicht mehr auftreten wird/würde. Das entscheidet aber Alaska nun selbst, was sie wie lösen werden/möchten.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!