AGB  ·  Datenschutz  ·  Impressum  







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

Wort aus String extrahieren

Ein Thema von Sweex · begonnen am 27. Jun 2015 · letzter Beitrag vom 27. Jun 2015
Antwort Antwort
Sweex

Registriert seit: 25. Jun 2015
10 Beiträge
 
#1

AW: Wort aus String extrahieren

  Alt 27. Jun 2015, 14:42
[dcc32 Fehler] Amp.pas(309): E2081 Anweisung für FOR-Schleifenvariablen 'i'
i:=1; und hier
[dcc32 Warnung] Amp.pas(310): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt. Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.
while (Outbound[i] in ['0'..'9', 'A'..'Z', 'a'..'z']) and (i <= Length(Outbound)) do Oh, warum meckert er nun? Ja die Ausdrücke gucke ich mir an, versprochen.

Edit: Hab den Fehler, eine schleife vorher war nicht korrekt geschlossen

Geändert von Sweex (27. Jun 2015 um 15:09 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Wort aus String extrahieren

  Alt 27. Jun 2015, 15:59
In einer For-Schleife, in der du "i" als Zählervariable benutzt, kannst du nicht einfach "i" wieder auf irgend einen Wert setzen. Dafür solltest du dann repeat ... until oder while ... do benutzen.
[dcc32 Warnung] Amp.pas(310): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt. Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.
while (Outbound[i] in ['0'..'9', 'A'..'Z', 'a'..'z']) and (i <= Length(Outbound)) do
Ab Delphi 2009 sollte man die Funktion CharInSet() für solche Konstrukte verwenden. Deshalb auch die Warnung. Als Beispiel so:

if CharInSet(Outbound[i], ['0'..'9', 'A'..'Z', 'a'..'z']) then ...
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#3

AW: Wort aus String extrahieren

  Alt 27. Jun 2015, 18:43
Ich habe kein Delphi XE, aber ungefähr so müsste es mit den XE-Regexen funktionieren (keyword1, keyword2... sind die Schlüsselwörter, auf die ein für dich interessantes Wort folgt) :

Code:
var
   regexpr : TRegEx;
   match  : TMatch;

begin
  regexpr := TRegEx.Create('(Keyword1|Keyword2|Keyword3)\W+(\w+)',[roIgnoreCase]);
  match := regexpr.Match(Outbound);
  if match.Success then Outbound:=Match.Groups[2];
end;
In Match.Groups{1] ist das gefundene Schlüsselwort, in Match.Groups[2] das Wort dahinter.

Geändert von idefix2 (27. Jun 2015 um 18:51 Uhr)
  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 19:20 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