Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textdatei ohne Trennzeichen verarbeiten (https://www.delphipraxis.net/128964-textdatei-ohne-trennzeichen-verarbeiten.html)

Reinhard Kern 10. Feb 2009 11:19

Re: Textdatei ohne Trennzeichen verarbeiten
 
Hallo,
eine nette Variante, Urpascal und gut wartbar, da die Definition im Record steckt:
Delphi-Quellcode:
type
  TAdresse = record case boolean of
               false : (DataString : string [maxdatalength]);
               true:  (KNummer : array [1..5] of char;
                        Kname  : array [1..18] of char;
                        KStrasse : array [1..13]) of char);
             end;

var
  f    : Textfile;
  Adresse : TAdresse;
  Kundennummer : string;
begin
  While not(eof(f)) do
    begin
      readln(f,Adresse.DataString);
      Kundennummer := StrPLCopy (Adresse.KNummer,High(Adresse.KNummer));
          {...}
    end;
end;
Setztz voraus, dass keine NUL-Char in der Zeile, wäre auch seltsam.

Gruss Reinhard

globetrotter77 10. Feb 2009 11:24

Re: Textdatei ohne Trennzeichen verarbeiten
 
Zitat:

Zitat von Reinhard Kern
Hallo,
eine nette Variante, Urpascal und gut wartbar, da die Definition im Record steckt:
Delphi-Quellcode:
type
  TAdresse = record case boolean of
               false : (DataString : string [maxdatalength]);
               true:  (KNummer : array [1..5] of char;
                        Kname  : array [1..18] of char;
                        KStrasse : array [1..13]) of char);
             end;

var
  f    : Textfile;
  Adresse : TAdresse;
  Kundennummer : string;
begin
  While not(eof(f)) do
    begin
      readln(f,Adresse.DataString);
      Kundennummer := StrPLCopy (Adresse.KNummer,High(Adresse.KNummer));
          {...}
    end;
end;
Setztz voraus, dass keine NUL-Char in der Zeile, wäre auch seltsam.

Gruss Reinhard

StrPLCopy gab es schon im Ur-Pascal???
Kann mich nicht erinnern ... :gruebel:
ganz abgesehen, dass
Delphi-Quellcode:
StrPLCopy (Adresse.KNummer,High(Adresse.KNummer));
schon ein bisschen kryptisch ist, oder?

Reinhard Kern 10. Feb 2009 12:30

Re: Textdatei ohne Trennzeichen verarbeiten
 
Zitat:

Zitat von globetrotter77
StrPLCopy gab es schon im Ur-Pascal???
Kann mich nicht erinnern ... :gruebel:
ganz abgesehen, dass
Delphi-Quellcode:
StrPLCopy (Adresse.KNummer,High(Adresse.KNummer));
schon ein bisschen kryptisch ist, oder?

Hi,

StrIrgendwas ist ja kein Sprachbestandteil, sondern eine Library-Funktion, die man sich bei Bedarf in ein paar Minuten selbst zusammentippen kann, angenehm aber nicht notwendig. Auch wenn sich das mancher Neuprogrammierer nicht mehr vorstellen kann, es gab grosse und professionell strukturierte Software auch schon vor VCL und MFC.

Aber darum gings garnicht, ich finde nur dass die Möglichkeit von record case zu Unrecht völlig in Vergessenheit geraten ist. Ich habe das schon vor Jahrzehnten zur Umwandlung von z.B. Realzahlen in 4 Bytes usw. benutzt, es gibt ja nicht für alle Fälle vorgefertigte Funktionen wie Hi oder Lo, wenn überhaupt (etwa in Z80-Pascal selig). Jeder benutzt halt, was er kennt, und case records gehören wohl nicht mehr dazu.

Und wenn du was WIRKLICH kryptisches sehen willst, musst du C++ verwenden. Der von mir gewählte Zugriff hat jedenfalls den Vorteil, dass man dazu die einzelnen Stringlängen nicht mehr im Kopf oder sonstwo haben muss und entsprechende Änderungen nur an einer Stelle notwendig sind. Dass das für die Wartung seine Vorteile hat, ist inzwischen auch in Vergessenheit geraten. Fast alle Vorschläge hier stecken die Definition in Trim oder Copy Funktionen mitten im Programm (und in der Praxis dann noch an mehreren Stellen, z.B. zum Lesen und Schreiben).

Gruss Reinhard

globetrotter77 10. Feb 2009 12:42

Re: Textdatei ohne Trennzeichen verarbeiten
 
Zitat:

Zitat von Reinhard Kern
Und wenn du was WIRKLICH kryptisches sehen willst, musst du C++ verwenden.

Da muss ich dir natürlich recht geben!
Zitat:

Der von mir gewählte Zugriff hat jedenfalls den Vorteil, dass man dazu die einzelnen Stringlängen nicht mehr im Kopf oder sonstwo haben muss und entsprechende Änderungen nur an einer Stelle notwendig sind. Dass das für die Wartung seine Vorteile hat, ist inzwischen auch in Vergessenheit geraten.
Allerdings! Leider!


PS: zum Thema kryptisch kann ich Brainfuck empfehlen, hier ein Sourcecode-Auszug in strukturierter Form:
Delphi-Quellcode:
    [-<<<<<<<<<<<+>>>>>>>>>>>]
      >>>[>>>>>>>[-<<<<<<<<<<<+++++>>>>>>>>>>>]>>>]<<<<<<<<<<
    [+>>>>>>>>[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>>
              [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>>
              [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>>
              [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>>
              [-<<<<<<<<+>>>>>>>>]]]]]]]]]<<<<<<<<
              [->>>>>>>>+<<<<<<<<]-<<<<<<<<<<]
    >>>>>>>>[-<<<<<<<<<<<<<+>>>>>>>>>>>>>]>>
    [>>>>>>>>[-<<<<<<<<<<<<<+++++>>>>>>>>>>>>>]>>]<<<<<<<<<<
    [<<<<<<<<<<]>>>>>>>>>>
    >>>>>>

Bali 10. Feb 2009 14:18

Re: Textdatei ohne Trennzeichen verarbeiten
 
Hurra !

Hab zwar noch ein paar Probleme mit Integer und String Werten aus dem TextFile, aber das bekomme ich schon hin ;)

Recht herzlichsten Dank euch allen !!!

MfG

Bali


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz