Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TStringList: Statt "#13#10" nur "#10"? (https://www.delphipraxis.net/147436-tstringlist-statt-13-10-nur-10-a.html)

Helmi 8. Feb 2010 17:45


TStringList: Statt "#13#10" nur "#10"?
 
Hallo,

kann man einer TStringList beibringen, dass sie als LineFeed nur #10 nehmen soll?
Leider verwendet sie momentan #13#10 aber ich brauch das #13 nicht.

Oder bleibt mir (leider) nur die langsame Lösung über den Text zu laufen und #13#10 gegen #10 zu tauschen?

himitsu 8. Feb 2010 17:54

Re: TStringList: Statt "#13#10" nur "#10"
 
Gibt es bei dir schon StringList.LineBreak?

Helmi 8. Feb 2010 17:56

Re: TStringList: Statt "#13#10" nur "#10"
 
Zitat:

Zitat von himitsu
Gibt es bei dir schon StringList.LineBreak?

Nein! - ich verwende Delphi 7 Pro.

In den Sources der StringList hab ich gerade folgenden Code gefunden:

Delphi-Quellcode:
function TStrings.GetTextStr: string;
var
  I, L, Size, Count: Integer;
  P: PChar;
  S, LB: string;
begin
  Count := GetCount;
  Size := 0;
  LB := sLineBreak;
  for I := 0 to Count - 1 do Inc(Size, Length(Get(I)) + Length(LB));
  SetString(Result, nil, Size);
  P := Pointer(Result);
  for I := 0 to Count - 1 do
  begin
    S := Get(I);
    L := Length(S);
    if L <> 0 then
    begin
      System.Move(Pointer(S)^, P^, L);
      Inc(P, L);
    end;
    L := Length(LB);
    if L <> 0 then
    begin
      System.Move(Pointer(LB)^, P^, L);
      Inc(P, L);
    end;
  end;
end;
Und da dort "sLineBreak" aufgerufen wird, scheints wohl nicht möglich zu sein.

Sir Rufo 8. Feb 2010 18:00

Re: TStringList: Statt "#13#10" nur "#10"
 
Ansonsten halt (wenn es das in Delphi 7 schon gibt) mit Delphi-Referenz durchsuchenStringReplace

Helmi 8. Feb 2010 18:03

Re: TStringList: Statt "#13#10" nur "#10"
 
Zitat:

Zitat von Sir Rufo
Ansonsten halt (wenn es das in Delphi 7 schon gibt) mit Delphi-Referenz durchsuchenStringReplace

Na, sooooooooo alt ist Delphi 7 nun auch wieder nicht :mrgreen:
Ich brauch die Bits nicht einzeln selbst setzen :mrgreen:

Dann bleibt mir wohl nichts anderes übrig, als StringReplace zu verwenden

Sir Rufo 8. Feb 2010 18:07

Re: TStringList: Statt "#13#10" nur "#10"
 
oder du erstellst dir halt eine Ableitung von TStringList, die das kann ... :mrgreen:

Helmi 8. Feb 2010 18:38

Re: TStringList: Statt "#13#10" nur "#10"
 
Zitat:

Zitat von Sir Rufo
oder du erstellst dir halt eine Ableitung von TStringList, die das kann ... :mrgreen:

Wäre eine Idee, aber StringReplace reicht auch...
(Die Software wird von meinen Kollegen verwendet und die haben zeit auf die StringReplace-Schleife zu warten :mrgreen: )

p80286 8. Feb 2010 18:51

Re: TStringList: Statt "#13#10" nur "#10"
 
Anderer Vorschlag, wie wäre es mit soetwas:

Delphi-Quellcode:
procedure SCHREIBESTRINGLISTE_0A(ss:tstringlist;fn:string);
var
  i : integer;
  tb : array [0..8192] of byte;
  f : textfile;
begin
  assignfile(f,fn);
  settextbuf(tb,sizeof(tb));
  rewrite(f);
  for i:=0 to sl do
    write(f,sl[i]+#10);
  closefile(f);
end;
Gruß
K-H

Helmi 8. Feb 2010 18:53

Re: TStringList: Statt "#13#10" nur "#10"
 
Zitat:

Zitat von p80286
Anderer Vorschlag, wie wäre es mit soetwas:

Delphi-Quellcode:
procedure SCHREIBESTRINGLISTE_0A(ss:tstringlist;fn:string);
var
  i : integer;
  tb : array [0..8192] of byte;
  f : textfile;
begin
  assignfile(f,fn);
  settextbuf(tb,sizeof(tb));
  rewrite(f);
  for i:=0 to sl do
    write(f,sl[i]+#10);
  closefile(f);
end;
Gruß
K-H

Schaut ganz gut aus. Aber musste es oben nicht
Delphi-Quellcode:
(sl:tstringlist;fn:string);
lauten

p80286 8. Feb 2010 19:05

Re: TStringList: Statt "#13#10" nur "#10"
 
Jo
und auch für Dich: Es ist Montag, kalt und ...... grummel

(auf das tstringlsit gehe ich jetzt mal nicht ein)


Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.
Seite 1 von 2  1 2      

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