Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi WideString mit Zeielnumbrüchen in string array? (https://www.delphipraxis.net/78963-widestring-mit-zeielnumbruechen-string-array.html)

xZise 13. Okt 2006 22:10


WideString mit Zeielnumbrüchen in string array?
 
Ich habe ein WideString der einen Text getrennt nach Zeilenumbrüchen enthält.
Nun wollte ich daras ein Array machen, also jede zeile in ein Arrayitem packen.

Nur weiß ich gerade nicht, wie ich das am besten umforme.

Ich denke mir das schon irgendwie, mit "nach "Umbruch" suchen und dann das kopieren, aber das Problem ist, dass ich gar nicht weiß, wie ich die Position der Umbrüche kommen kann.

Zacherl 13. Okt 2006 22:19

Re: WideString mit Zeielnumbrüchen in string array?
 
Such doch einfach in einer Schleife oder mit Pos / PosEx alle Vorkommnisse von #13#10 und trenne den String danach ...

xZise 13. Okt 2006 22:21

Re: WideString mit Zeielnumbrüchen in string array?
 
Zitat:

Zitat von Florian Bernd
Such doch einfach in einer Schleife oder mit Pos / PosEx alle Vorkommnisse von #13#10 und trenne den String danach ...

Hehe ;) Ich hatte nach '#13#10' gesucht und nicht nach #13#10... :D Also das Problem ist gelöst ;) Danke :D

Wie suche ich jetzt eigentlich nach einen Tab? Welches Zeichen hat das?

Zacherl 13. Okt 2006 22:25

Re: WideString mit Zeielnumbrüchen in string array?
 
Tag ist glaube ich #10 ... hier mal ein Beispiel zum Trennen deines Strings:

Delphi-Quellcode:
var
  i: integer;
  parts: array of string;
  str: string;
begin
  str := 'z1' + #13#10 + 'z2' + #13#10 + 'z3' + #13#10;
  while pos(#13#10, str) <> 0 do
  begin
    setlength(parts, length(parts) +1);
    parts[length(parts) -1] := copy(str, 1, pos(#13#10, str) -1);
    delete(str, 1, pos(#13#10, str) +1);
  end;
  for i := 0 to length(parts) -1 do
    showmessage(parts[i]);
end;
Florian

semo 13. Okt 2006 22:29

Re: WideString mit Zeielnumbrüchen in string array?
 
tab ist #9

xZise 13. Okt 2006 22:37

Re: WideString mit Zeielnumbrüchen in string array?
 
Zitat:

Zitat von Florian Bernd
Tag ist glaube ich #10

Nein... Das ist glaub ich Wagenrücklauf :P

Zitat:

Zitat von Florian Bernd
... hier mal ein Beispiel zum Trennen deines Strings:

Delphi-Quellcode:
var
  i: integer;
  parts: array of string;
  str: string;
begin
  str := 'z1' + #13#10 + 'z2' + #13#10 + 'z3' + #13#10;
  while pos(#13#10, str) <> 0 do
  begin
    setlength(parts, length(parts) +1);
    parts[length(parts) -1] := copy(str, 1, pos(#13#10, str) -1);
    delete(str, 1, pos(#13#10, str) +1);
  end;
  for i := 0 to length(parts) -1 do
    showmessage(parts[i]);
end;

Also ich habe es so gemacht:
Delphi-Quellcode:
  i : Integer;
  StartPoint : Integer;
  text : WideString;
  list : array of string;
begin
    ToDoChangeType := {irgendetwas};

    StartPoint := 0;

    while PosEx(#13#10, text, StartPoint) > 0 do begin
      SetLength(list, Length(list) + 1);
      list[High(list)] := Copy(text, StartPoint + 1, PosEx(#13#10, text, StartPoint) - StartPoint - 1);
      StartPoint := PosEx(#13#10, text, StartPoint) + 1;
    end;
Zitat:

Zitat von computer-glossar.de
tab ist #9

Könnt sein :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 Uhr.

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