AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String in drei teilen

Ein Thema von fox67 · begonnen am 11. Mär 2011 · letzter Beitrag vom 11. Mär 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: String in drei teilen

  Alt 11. Mär 2011, 13:21
Entweder eine StringListe wie von mkinzler schon genannt oder Du bastelt Dir eine eigene Funktion:

z.B.

Delphi-Quellcode:
procedure ExplodeString(DelimitedString : String; VAR Part1, Part2, Part3 : String);
begin
  (* Erster Teil *) 
  Part1 := copy(DelimitedString, 1, Pos('|', DelimitedString)-1);
  (* Zweite Teil *)
  DelimitedString := Delete(DelimitedString, 1, Pos('|', DelimitedString));
  Part2 := copy(DelimitedString, 1, Pos('|', DelimitedString)-1);
  (* Dritter Teil*)
  Part3 := copy(DelimitedString, Pos('|', DelimitedString)+1, Length(DelimitedString));
end;
Aufruf:

Delphi-Quellcode:
 VAR GanzerString, Teil1, Teil2, Teil3 : String;
 [...]
 GanzerString := 'ErsterTeil|ZweiterTeil|DritterTeil';
 ExplodeString(GanzerString, Teil1, Teil2, Teil3);
 ShowMessage(Teil1);
 ShowMessage(Teil2);
 ShowMessage(Teil3);
end;
[/DELPHI]

... Ungetestet!
Michael Kübler

Geändert von scrat1979 (11. Mär 2011 um 14:14 Uhr)
  Mit Zitat antworten Zitat
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: String in drei teilen

  Alt 11. Mär 2011, 13:37
scrat1979 ich habe dein code mal ausprobiert da der von mkinzler nicht funktioniert hatt aber es kommen folgende fehlermeldungen:
[Error] Unit2.pas(30): Incompatible types: 'String' and 'Integer'
[Error] Unit2.pas(32): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit2.pas'
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#3

AW: String in drei teilen

  Alt 11. Mär 2011, 13:41
scrat1979 ich habe dein code mal ausprobiert da der von mkinzler nicht funktioniert hatt aber es kommen folgende fehlermeldungen:
[Error] Unit2.pas(30): Incompatible types: 'String' and 'Integer'
[Error] Unit2.pas(32): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit2.pas'
Hast du den Code 1:1 übernommen?
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
  sl: TStringlist; // oder auch TStrings
begin
  sl := TStringlist.Create;
  sl.Delimiter := '|';
  sl.DelimitedText := 'test|test1|test2';
  ShowMessage(sl.Strings[0]); // zeigt test an
  sl.Free;
end;
Klappt problemlos.
Max
  Mit Zitat antworten Zitat
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: String in drei teilen

  Alt 11. Mär 2011, 13:53
is ja komisch ich habe den code von mkinzler erneut in delphi eingegeben und jetzt funktioniert es plötzlich
  Mit Zitat antworten Zitat
Capa

Registriert seit: 26. Okt 2003
102 Beiträge
 
RAD-Studio 2010 Arc
 
#5

AW: String in drei teilen

  Alt 11. Mär 2011, 14:12
nichts für ungut aber ich hab da eher den anschein das dir generell das verständniss
für einige grundfunktionen fehlt, vielleicht mal ein paar kleine tutorials durchlesen
hilft meistens schon enorm.

Ich sag nicht das ich alles kann allerdings kann man viel durch tutorials lernen.
Gibt glaub ich sogar nen thread hier im forum wo verschiedene tutorials aufgelistet
werden.

Wie gesagt ist nciht böse gemeint aber an vielen deiner beiträge merkt man schon das dir
da was fehlt.

Mfg Capa
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: String in drei teilen

  Alt 11. Mär 2011, 14:14
scrat1979 ich habe dein code mal ausprobiert da der von mkinzler nicht funktioniert hatt aber es kommen folgende fehlermeldungen:
[Error] Unit2.pas(30): Incompatible types: 'String' and 'Integer'
[Error] Unit2.pas(32): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit2.pas'
hab grad 'nen Fehler gefunden und behoben. Versuch es nochmal...
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#7

AW: String in drei teilen

  Alt 11. Mär 2011, 14:19
scrat1979 ich habe dein code mal ausprobiert da der von mkinzler nicht funktioniert hatt......
funzt doch einwandfrei!?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sl: TStrings;
begin
  sl := TStringlist.Create;
  sl.Delimiter := '|';
  sl.DelimitedText := 'test0|test1|test2';
  ShowMessage(sl[0]+'+'+sl[1]+'+'+sl[2]);
  sl.Free;
end;
Edit: getestet mit D2010

Edit2: Sorry, vergesst es, ist ja schon geklärt, ich hatte das Browserfenster ne Weile offen und nicht aktualisiert
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg

Geändert von TonyR (11. Mär 2011 um 14:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#8

AW: String in drei teilen

  Alt 11. Mär 2011, 14:34
Aber dann bitte so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sl: TStrings;
begin
  sl := TStringlist.Create;
  try
    sl.Delimiter := '|';
    sl.StrictDelimiter := true; //erst ab Delphi 2006
    sl.DelimitedText := 'test0|test1|test2';
    ShowMessage(sl[0]+'+'+sl[1]+'+'+sl[2]);
  finally
    sl.Free;
  end;
end;
Bei Delphi-Versionen < 2006 hat man auf diese Weise aber Kummer, da sie StrictDelimiter noch nicht kennen. Das bedeutet, dass dort zusätzlich zum Delimiter auch Leerzeichen als Trenner verwendet werden. In dem Fall muss man sich anders behelfen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#9

AW: String in drei teilen

  Alt 11. Mär 2011, 13:38
Wobei die Funktion nicht auf 3 Parts begrenzt sein sollte

Schöner wäre eine while-do Schleife und als Result ein dynamisches Array
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#10

AW: String in drei teilen

  Alt 11. Mär 2011, 13:39
Na wie wäre es mal mit selber testen ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:03 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