Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi erste zahl jeder zeile von textdokument ändern (https://www.delphipraxis.net/68884-erste-zahl-jeder-zeile-von-textdokument-aendern.html)

Smeivel 7. Mai 2006 15:33


erste zahl jeder zeile von textdokument ändern
 
Hallo erstmal!
ich habe ein Textdokument mit mehreren Telefonnummern (Nummer,Name) jetzt würde ich gerne ein kleines Programm machen was falls die nummer mit einer '0' beginnt diese 0 durch'0049' ersetzen bzw. wenn die nummer mit einer anderen zahl beginnt sie mit '05606' ersetzen. ich habe mir gedacht die nummern in eine stringlist zu laden diese nach dem prinzip zu ändern und dann mit SaveToFile wieder im Textdokument zu speichern, doch weiß ich nicht wie ich sagen kann dass ich nur die erste ziffer einer zeile auslesen bzw. ändern kann.Ich glaube dass man sowas am besten mit einer case-Schleife machen sollte oder?

Vielen Dank im Voraus!

Der_Unwissende 7. Mai 2006 16:53

Re: erste zahl jeder zeile von textdokument ändern
 
HI,
ähnlich wie der If-Schleife ging es auch der Case-Schleife, sie wurden nie erfunden. Es handelt sich um eine Anweisung (nicht um eine Schleife).
Wenn dein Textdokument eine feste Struktur hat, dann solttest du diese ruhig ausnutzen. An sich kannst du natürlich schauen, ob du eine 0 in der Zeile findest und ob diese vor jeder anderen Ziffer liegt, aber wenn du z.B. immer Strings der Form
04857576 IrgendEinName
hast, dann könntest du auch mittels
Delphi-Quellcode:
// mit list deiner StringList
if list.Count > 0 then
begin
  for i := 0 to list.Count - 1 do
  begin
    if list[i][1] = 0 then
    begin
      // durch 0049 ersetzen
    end
    else
    begin
      // is klar
    end;
  end;
end;
Gruß Der Unwissende

MrSpock 7. Mai 2006 18:18

Re: erste zahl jeder zeile von textdokument ändern
 
Hallo Smeivel,

auf das erste Zeichen greifst du entweder mit:

Delphi-Quellcode:
for i := 0 to myList.Count -1 do
begin
  erstesZeichen := myList.Strings[i][1];
zu oder mit

Delphi-Quellcode:
Copy(myList.Strings[i], 1, 1)
Bei der zweiten Version verlässt du nicht nicht auf eine spezielle interne Darstellung von Strings.

Du musst anders als im Code von Der_Unwissende aber auf Gleichheit mit '0' anstatt 0 prüfen.

nat 7. Mai 2006 20:33

Re: erste zahl jeder zeile von textdokument ändern
 
ich würde noch trim() bei jeder zeile verwenden um evtl voranstehende
whitespaces zu entfernen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 Uhr.

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