AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi String nach anderem String durchsuchen
Thema durchsuchen
Ansicht
Themen-Optionen

String nach anderem String durchsuchen

Ein Thema von Z4ppy · begonnen am 13. Dez 2008 · letzter Beitrag vom 13. Dez 2008
Antwort Antwort
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#1

String nach anderem String durchsuchen

  Alt 13. Dez 2008, 16:37
Ich habe hier einen String, den ich nach einem anderen String durchsuchen möchte.
Ich dachte nun erstmal an Pos, aber das Problem ist, dass der Suchstring im durchsuchten String mehrmals vorkommen kann und ich jedesmal, wenn ich ihn finde, etwas machen muss mit den folgenden Zeichen.

Idee (ungetestet):
Delphi-Quellcode:
Position:=Pos(searchstr,str);
{mit Position was machen}
str:=Copy(str,Position+Length(searchstr),Length(str)-(Position+Length(searchstr));
und das ganze halt in ner Schleife bis Position 0 ist...

Oder gibts noch ne schnellere Methode?

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: String nach anderem String durchsuchen

  Alt 13. Dez 2008, 16:39
Evtl. käme PosEx aus StrUtils in Frage.
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
blink182

Registriert seit: 19. Jun 2007
126 Beiträge
 
Delphi 5 Standard
 
#3

Re: String nach anderem String durchsuchen

  Alt 13. Dez 2008, 16:44
hi
PosEx hätte ich dir auch empfohlen, aber dann hast du auch eine schleife und suchst halt einfach ab der alten Position.
Bei deinem ungetesten Code, musst du ggf. noch +1 beim 2. Parameter der Copy-Funktion machen,wenn ich mich recht entsinne und am Ende kannst du eigentlich einfach length(str) eingeben, weil der wenn keine Zeichen mehr folgen einfach den String dann so lässt, aber das ist eigentlich egal.
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: String nach anderem String durchsuchen

  Alt 13. Dez 2008, 16:58
Wie könnte man denn überprüfen, was performanter ist? Die Unterschiede sind ja wahrscheinlich gering, aber ich wills trotzdem so schnell wie möglich machen

MfG Z4ppy

€dit: PosEx kommt wohl doch nicht infrage, da ich dazu ja die StrUtils noch einbinden müsste. Dadurch würde die Exe aber wieder grösser, das will ich eigentlich verhindern (System is eh drin)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: String nach anderem String durchsuchen

  Alt 13. Dez 2008, 17:04
Na, Du nimmst Dir einen relativ langen String zur Bearbeitung, rufst beide Methoden auf und misst mit dem Gespann QueryPerformanceCounter/QueryPerformanceFrequency die benötigte Zeit.

[edit] Wenn Du StrUtils nicht einbinden willst, kopier Dir doch den Source in Deine eigene Unit. [/edit]
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
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: String nach anderem String durchsuchen

  Alt 13. Dez 2008, 17:25
Jep, hab ich jetzt gemacht...
Ich habe eine Datei in einen String geladen und durchsuche so indirekt die Datei. Der String ist vorhanden (habs mit dem Editor überprüft), aber trotzdem gibt mir PosEx 0 zurück. Pos übrigens auch... Warum?

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: String nach anderem String durchsuchen

  Alt 13. Dez 2008, 17:28
Ohne den String und das Suchmuster zu kennen, was soll man da sagen?
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
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: String nach anderem String durchsuchen

  Alt 13. Dez 2008, 17:51
Muss an der Datei liegen, die ich in einen String lade.

Wenn ich die Datei mitm Editor öffne, den kompletten Inhalt kopiere, ihn in eine neue Datei kopiere und die als TXT abspeicher und dann diese durchsuche, gehts.
Wenn ich die Datei jedoch direkt nehm, gehts nicht.
Warum?

MfG Z4ppy

€dit: Grund gefunden...
  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 05:56 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