AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Split Function, funktioniert net richtig???
Thema durchsuchen
Ansicht
Themen-Optionen

Split Function, funktioniert net richtig???

Ein Thema von rtky_trunks · begonnen am 8. Okt 2005 · letzter Beitrag vom 8. Okt 2005
Antwort Antwort
rtky_trunks

Registriert seit: 5. Mai 2005
Ort: Breisach am Rhein
16 Beiträge
 
Delphi 7 Enterprise
 
#1

Split Function, funktioniert net richtig???

  Alt 8. Okt 2005, 19:47
Hallo,


ich hab nen kleines Problem mit ner Split function(wenn es wirklich daran liegt). Ich hoffe ihr koennt mir weiterhelfen.

Also. Es ist so - ich bekomm vom Server ein String geschickt in der die clients die online sind gespeichert sind.
zbs.: Clients_online := 'Chris:Bobi:Marc:Oli';

Nun mein code sieht so aus:
lbClients ist in dem Fall ein ListBox.

Delphi-Quellcode:
     i := 0;
     while not (split(Clients_online, ':', i) = '') do
      begin
       lbClients.Items.Add(split(Clients_online, ':', i));
       i := i+1;
      end;
Die Split function sieht so aus:

Delphi-Quellcode:
function split(input: string; schar: Char; s: Integer): string;
var
  c: array of Integer;
  b, t: Integer;
begin
  Dec(s, 2); // for compatibility with very old & slow split function
  t := 0; // variable T needs to be initialized...
  setlength(c, Length(input));
  for b := 0 to pred(High(c)) do
  begin
    c[b + 1] := posex(schar, input, succ(c[b]));
    // BREAK LOOP if posex looped (position before previous)
    // or wanted position reached..
    if (c[b + 1] < c[b]) or (s < t) then break
    else
      Inc(t);
  end;
  Result := Copy(input, succ(c[s]), pred(c[s + 1] - c[s]));
end;
Die hab ich uebrigens von dem DelphiSwissCenter.

Es Funktioniert wunderbar wenn der String so heisst 'Chris:'.
Aber sobald so ein String 'Chris:Bobi:Oli' kommt. Ensteht ein Totales durcheinander.
Das wird nicht so aufgelistet:
Chris
Bobi
Oli

sondern

Chris
chris
Oli

Wenn nur 2 String kommen ('Chris:Bobi') entstehen ploetzlich 3 clients. Dass hier: Chriss,Oli, Oli

Das ist mir ein Megaraetzel. Ich hoffe ihr koennt mir Helfen.


Gruss Marc

Ps.: Sry wegen der Englischen Tast. Aber ich hab nen Englisches Notebook ^^
Matrix is a Puffer like a Net-Port
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Split Function, funktioniert net richtig???

  Alt 8. Okt 2005, 21:01
Hallo Marc,

du könntest auf die Funktion Split gut verzichten:

Delphi-Quellcode:
procedure TDemoForm.ShowClients(sClients: string);
var
  sl: TStringList; // Hilfsobjekt für String-Zerlegung
begin
  // Instanz erzeugen
  sl := TStringList.Create;
  // Parser auf Trennzeichen colon umpolen
  sl.Delimiter := ':';
  // Parser füttern, die einzelnen Namen werden dadurch als
  // einzelne Items in der Liste geführt
  sl.DelimitedText := sClients;
  // Übernehmen der Items von sl nach lbClients.Items
  lbClients.Items.Assign(sl); // lbClients: ListBox
  // Hilfsobjekt zerstören
  sl.Free;
end;

procedure TDemoForm.ShowButtonClick(Sender: TObject);
begin
  ShowClients('chris:oli:marc:seppl');
end;
Grüße vom marabu

Jetzt mit Kommentaren...
  Mit Zitat antworten Zitat
rtky_trunks

Registriert seit: 5. Mai 2005
Ort: Breisach am Rhein
16 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Split Function, funktioniert net richtig???

  Alt 8. Okt 2005, 21:10
Hi,

Danke fuer die antwort.
Aber kannst du das bitte fuer mich ein bisschen verstaendlicher Beschreiben? Also 'n bisschen Kommentieren^^
Hab da jetzt nicht genau verstanden was du da machst.


Gruss Marc
Matrix is a Puffer like a Net-Port
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Split Function, funktioniert net richtig???

  Alt 8. Okt 2005, 21:16
Marc, ich habe meinen Code etwas angereichert. Wenn du einzelne Methoden oder Komponenten noch nicht kennst, dann kannst du mit dem Cursor auf dem Text die F1-Taste drücken und erhältst die passende Erklärung aus der Delphi Online-Hilfe.

marabu
  Mit Zitat antworten Zitat
rtky_trunks

Registriert seit: 5. Mai 2005
Ort: Breisach am Rhein
16 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Split Function, funktioniert net richtig???

  Alt 8. Okt 2005, 21:20
Ja, cool.
Grosses Danke an dich.
Habs gleich eingebaut und Funktionukt einwandfrei...

Danke nochmal

Gruss Marc
Matrix is a Puffer like a Net-Port
  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 17:50 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