AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Parse String - Satz splitten Problem

Ein Thema von Go2EITS · begonnen am 26. Aug 2006 · letzter Beitrag vom 26. Aug 2006
 
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Parse String - Satz splitten Problem

  Alt 26. Aug 2006, 09:20
Hallo,

wie wäre es hiermit:
Delphi-Quellcode:
function ParseString(const S: String): Boolean;
const
  Letters: set of Char = ['0'..'9', 'A'..'Z', 'a'..'z'];

var
  H: String;
  I: Integer;
begin
  Result := False;

  if S = 'then
    Exit;

  H := '';

  for I := 1 to Length(s) do
  begin
    if S[I] in Letters then
      H := H + S[I] // Wort zusammenbauen
    else
      if H <> 'then // Haben wir ein Wort?
      begin
        ToList(H); // Hinzufügen
        H := ''; // aufräumen
      end;
  end;

  if H <> 'then // Ist noch ein Wort übrig?
    ToList(H);
end;
Ich habe aus dem var ein const gemacht, sowas wir Trim solltest Du am Besten außerhalb der Funktion machen.
Übrigens setzt Du Result zwar am Anfang auf False, aber niemals auf True.

//Edit:
Einem String mit + immer wieder ein einzelnes Zeichen hinzuzufügen ist nicht sehr performant. Diese Lösung ist wahrscheinlich besser:
Delphi-Quellcode:
function ParseString2(const S: String): Boolean;
const
  Letters: set of Char =['0'..'9','A'..'Z','a'..'z'];

var
  L: Integer;
  I: Integer;
  Start: Integer;
begin
  Result := False;

  if S = 'then
    Exit;

  L := Length(S);

  Start := -1;
  for I := 1 to L do
  begin
    if S[I] in Letters then
    begin
      if Start = -1 then
        Start := I;
    end else
      if Start <> -1 then
      begin
        ToList(Copy(S, Start, I - Start));
        Start := -1;
      end;
  end;

  if Start <> -1 then
    ToList(Copy(S, Start, MaxInt));
end;
Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:26 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