Laden...
14 Antworten
1,951 Aufrufe
Letzter Beitrag: vor 18 Jahren
Im String suchen

Guten Tag,

Ich habe den WebControl1.DocumentText in einen String geladen und möchte aus diesem String nun alle links die mit "http://kuttnig.net/" beginnen herausfiltern. Dann verwende ich eine Funktion die die Links überprüft. Ich möchte danach je nach dem ob der Link dead ist oder funktioniert in der Webseite hinter den Link - dead oder -working schreiben.

Was ich nun genau brauche:

  • Funktion die in einem String sucht bis nichts mehr gefunden wird und die Ergebnisse in einem Array speichert. Die Anzahl der gefundenen Textstellen soll in einem Integer gespeichert werden.

+Den HTML anschliessend so verändern das die gefunden Strings mit dem Link + " - dead" oder " - working" ersetzt werden.

Kann mir da jemand helfen?

ich würde jetzt mal behaupten, dass reguläre ausdrücke deine links aus einem string raussuchen.

heute code ich, morgen debug ich und übermorgen cast ich die königin auf int

System.Text.RegularExpressions.Regex.Matches(deinstring, "http.//blablablub", RegexOptions.IgnoreCase);

rest sollte einfach machbar sein

"Hail to the King, Baby!"

Ok danke, war schon mal sehr hilfreich. Das Problem ist aber das ich nur den String den ich suche anstatt des ganzen Links zurückbekomme.

Übrigens schauen die Links bei mir immer so aus:

<td class="code">
<br />
http://link

<br />
blablabal info blabla
</td>

Also immer in <td class="code"> feldern.

Ich möchte einfach die Links aus allen <td> feldern (nur die links) in ein array schreiben.

dann schau dir mal die regex-klasse genau an
es gibt methoden die dir den startindex bei einem treffer liefern
also wenn du nach "http://" suchst und er findet eines im string, mußt du einfach nur Substring(startindex, endindex) machen
wobei ich glaube das regex das auch kann, aber da gibts bessere profis im forum die da besser bescheid wissen

"Hail to the King, Baby!"

Dynamische Stringsuche

Guten Tag,

Sorry das ich schon wieder nerve aber ich komme nicht mit dem Suchen von Strings zurecht.

Ich habe einen String mit HTML Code in dem ich die Links rausfiltern will die mit

"http://rapidshare.com" anfangen. Ich hätte mir gedacht das dass mit StartsWith gehen sollte habe aber noch keinen Ansatz da ich mir den ganzen Link nicht anzeigen lassen kann weil ich Endswith nicht verwenden kann da die Dateiendung immer variert.

Kann mir da jemand nen Ansatz geben wie ich die Links suchen kann?

P.S Ein Link bei mir schaut normalerweise so aus:

http://rapidshare.com/files/40330237/N7.9.6.part1.rar

Vielleicht könnte man da mit Split was basteln..

Ist der Link irgendwie besonders abgegrenzt? Also enden alle auf rar?

Dann könntest du wie mein Vorposter schon geschrieben hat, erstmal den String teilen und hättest dann für jeden String einen Einzelstring aus dem du nur den Link extrahieren müsstet.

Er befindet sich einfach in Fliesstext. Da dass etwas schwer zu realisieren ist möchte ich nur nach "http://rapidshare..." und mit der extension ".rar"

Also

StartsWith "http://rapidshare"
EndsWith ".rar"

Kann mir da jemand helfen?

Versuch mal das...

string s = "http://rapidshare.com/files/40330237/N7.9.6.part1.rar";

string[] a = s.Split(new string[] { "http://rapidshare.com/" },StringSplitOptions.None);

sollte dir weiterhelfen ...

mit .IndexOf("http://") findest du den Anfang eines links und von dort weg wieder IndexOf(".rar") solltest du das Ende finden...

ganz so leicht sind String-Manipulationen aber nie, da es immer Sonderfälle gibt, also wenn z. bsp. ".rar" irgendwo anders im text vokommt,etc,....

Mir ist noch etwas eingefallen.

Du könnteste eine Schleife machen, die den String durchläuft. Dann prüfst du ob der String mit http:// losgeht, wenn das so ist, prüfst du solange bis du das Ende hast mit EndWith.

nach dem link wird doch ne leerstelle sein oder?
kannst das ende ja noch mit .??? oder .???? prüfen ob es jeweils ne richtige endung hat

"Hail to the King, Baby!"

Hallo Sebastian K.,

Sorry das ich schon wieder nerve aber ich komme nicht mit dem Suchen von Strings zurecht.

für das gleiche Thema zwei Threads zu öffnen ist nicht erlaubt und vor allem nicht erwünscht. Siehe [Hinweis] Wie poste ich richtig? Punkt 2.

herbivore