AGB  ·  Datenschutz  ·  Impressum  







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

String nach Trennzeichen aufteilen

Ein Thema von ChrisH90 · begonnen am 16. Okt 2003 · letzter Beitrag vom 17. Okt 2003
Antwort Antwort
ChrisH90

Registriert seit: 19. Sep 2003
31 Beiträge
 
Delphi 7 Professional
 
#1

String nach Trennzeichen aufteilen

  Alt 16. Okt 2003, 21:25
Hallo ihr alle,

habe ein kleines Anfängerproblem. Habe einen String mit unterschiedlicher Länge, welcher über einen Barcodeleser eingelesen wird. Funzt auch alles so weit recht gut. Der Barcode besteht jedoch aus zwei Teilen getrennt durch ein Pipe. Das bedeutet der Code sieht so aus: 22001232|5444555 . Diese Pipe trennt nun den linken Teil (Auftragsnummer) vom rechten Teil (Bezeichner). Beide brauche ich für sepparate SELECTs. Wie kriege ich die linke Seite von der rechten getrennt und beide somit als extra String? Es sei noch bemerkt, daß die Strings nicht immer gleich lang sind, aber immer durch ein Pipe getrennt sind. Bestimmt ist das ganz einfach, doch wie gesagt "Anfänger" hinsichtlich Delphi!
-----------------------------------------------------------------
Gruß
Christian
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: String nach Trennzeichen aufteilen

  Alt 16. Okt 2003, 21:26
such mal nach "Explode":

Hier im Forum suchenExplode

edit: oder besuch gleich diesen link hier: http://www.delphipraxis.net/internal...hlight=explode

mfG
mirage228
David F.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

Re: String nach Trennzeichen aufteilen

  Alt 16. Okt 2003, 21:30
S1 := Copy(S, 1, Pos('|', S) - 1);
S2 := Copy(S, Pos('|', S) + 1, Length(S));
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ChrisH90

Registriert seit: 19. Sep 2003
31 Beiträge
 
Delphi 7 Professional
 
#4

Re: String nach Trennzeichen aufteilen

  Alt 16. Okt 2003, 21:42
Whow, das ist ja schneller als wenn ich selber in einem Buch suche. Super hier, DANKE!!!!!!!
-----------------------------------------------------------------
Gruß
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: String nach Trennzeichen aufteilen

  Alt 16. Okt 2003, 23:29
hi,

also ich habe es immer so gemacht:

Delphi-Quellcode:
function strn(s: string; index: integer; sep: char): string;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  Try
    Repeat
      if Pos(sep, s) <> 0 then
      begin
        sl.Add(Copy(s, 1, Pos(sep, s)-1));
        Delete(s, 1, Pos(sep, s));
      end
      else
      begin
        sl.Add(s);
        s := '';
      end;
    until s = '';
    if index <= sl.Count then
    Result := sl.Strings[index-1]
    else Result := '';
  finally
    sl.Free;
  end;
end;
und dann mit:

Delphi-Quellcode:
procedure irgendwas;
var
  s: string;
begin
  s := strn(irgendeinstring, 1, ',') // das 2te is der 2te teil nach dem 1ten seperator des strings..das 3te der seperator selbst
end;
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: String nach Trennzeichen aufteilen

  Alt 16. Okt 2003, 23:58
@silent
Nicht schlecht, vor allem wenn mehreres geteilt werden soll. Ist sogar kürzer als das worauf mirage228 verlinkt hat.

Da ChrisH90 immer genau 2 Teile hat, ist es vielleicht etwas umständlich.

kleiner Tipp:
Wenn du in die Repeat-Schleife noch einen Zähler einbaust, kannst'e die Funktion unter umständern noch etwas beschleunigen.
(z.B. wenn der 3. Werte gesucht wird, nach dem 3. Durchgang Repeat verlassen)

Nachtrag (zum Beispiel so):
Delphi-Quellcode:
function strn(s: string; index: integer; sep: char): string;
var
  sl: TStringList;
  i: integer; {*}
begin
  sl := TStringList.Create;
  Try
    i := 0; {*}
    Repeat
      inc(i); {*}
      if Pos(sep, s) <> 0 then
      begin
        sl.Add(Copy(s, 1, Pos(sep, s)-1));
        Delete(s, 1, Pos(sep, s));
      end
      else
      begin
        sl.Add(s);
        s := '';
      end;
    until (s = '') or (i = index); {*}
    if index <= sl.Count then
    Result := sl.Strings[index-1]
    else Result := '';
  finally
    sl.Free;
  end;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: String nach Trennzeichen aufteilen

  Alt 17. Okt 2003, 01:20
danke, werd ich mal ändern ^^
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Antwort Antwort


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:02 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