Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Kash
Threadersteller
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Di 11.03.2008 16:30
Titel string aufteilen und umgekehrt wieder zusammensetzen |
|
|
Hallo liebe Forengemeinde,
ich habe mir ein Script gebaut welches eine Domain in der Form
' @sub1.sub2.test-1.de ' in diese ' de.test-1.sub2.sub1@ ' umwandeln soll.
Code: |
SQL = "SELECT * FROM **, ** WHERE **.** = '" & Session("**") & "' AND **.** = **.**"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.open SQL, db, 3, 3
do while not rs.eof
domain = rs("domain")
If InStr(domain,".") > 0 then
dummy = domain
do while InStr(dummy,".") > 0
anz = len(dummy)
pos = InStr(dummy,".")
minus = anz - pos
erg = right(dummy,len(dummy) - pos)
ergb = left(dummy,len(dummy) - (minus + 1))
response.write "anz: " & anz & " - pos: " & pos & " - minus: " & minus & "<br />"
response.write "domain: " & rs("domain") & "<br />"
response.write "erg: " & erg & "<br />"
response.write "ergb: " & ergb & "<br /><br />"
dummy = erg
loop
End If
domain = erg
response.write "--------------------------------------------------<br />"
rs.movenext
loop
|
als ausgabe erhalte ich folgendes.
*********************************
anz: 20 - pos: 6 - minus: 14
domain: @sub1.sub2.test-1.de
erg: sub2.test-1.de
ergb: @sub1
anz: 14 - pos: 5 - minus: 9
domain: @sub1.sub2.test-1.de
erg: test-1.de
ergb: sub2
anz: 9 - pos: 7 - minus: 2
domain: @sub1.sub2.test-1.de
erg: de
ergb: test-1
*********************************
man kann sehen das er die domain richtig bis zu jedem punkt aufteilt/abschneidet.
Jetzt probiere ich schon eine weile in diesem zuge die domain in meine gewünschte umgedrehte form wieder zusammen zu bauen, aber das will nicht funktionieren.
Hat mir jemand einen Tipp?
|
|
|
|
|
Marx
Dabei seit: 28.10.2006
Ort: Wien
Alter: 52
Geschlecht:
|
Verfasst Di 11.03.2008 22:17
Titel
|
|
|
Ich kenn mich mit ASP nicht aus. Da sich aber sonst keiner gerührt hat, hilft Dir vielleicht auch ein Ansatz in PHP weiter, den Du durch die entsprechenden ASP-Funktionen ersetzen könntest.
Ablauf
1. ein Array durch die Einzelteile erstellen.
2. Array umdrehen
3. String wieder zusammenfügen
Beispiel PHP
Code: | $domain="www.sub1.example.org";
$explodearr=explode(".", $domain); //String wird durch Trenner "." in ein Array überführt
$reversearr=array_reverse($explodearr); //das Array wird umgekehrt
$domain_reverse=implode( ".", $reversearr ); //Das umgedrehte Array wird wieder in einen String umgewandelt, wobei der Punkt jeweils wieder eingefügt wird.
echo $domain_reverse; // Ausgabe "org.example.sub1.www" |
Jetzt wäre noch das "@" zu berücksichtigen
(hier geh ich mal davon aus, dass es dieses Zeichen nur einmal oder gar nicht gibt)
Code: | if(strpos($domain_reverse, "@")){ //überprüfen, ob "@" vorhanden
$domain_reverse = str_replace("@","",$domain_reverse); //dann löschen
$domain_reverse.="@"; //und am Ende anfügen
}; |
|
|
|
|
|
Anzeige
|
|
|
Kash
Threadersteller
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Mi 12.03.2008 11:49
Titel
|
|
|
Hallo Marx,
vielen Dank für dein Antwort.
Ich habe es nicht über Felder gelöst.
Sondern wie unten zu sehen:
Code: |
SQL = "SELECT * FROM **,** WHERE **.** = '" & Session("**") & "' AND **.** = **.**"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.open SQL, db, 3, 3
i = 0
do while not rs.eof
response.write "domain: " & rs("domain") & "<br />"
domain = rs("domain")
If InStr(domain,".") > 0 then
dummy = domain
do while InStr(dummy,".") > 0
anz = len(dummy)
pos = InStr(dummy,".")
minus = anz - pos
erg = right(dummy,len(dummy) - pos)
ergb = left(dummy,len(dummy) - (minus + 1))
If InStr(ergb,"@") > 0 then
ergb = right(ergb,len(ergb) -1)
End If
If i = 0 then
enderg = ergb
elseif i > 0 then
enderg = ergb & "." & enderg
End If
dummy = erg
i = i + 1
loop
enderg = erg & "." & enderg & "@"
response.write "enderg: " & enderg & "<br />"
End If
domain = erg
response.write "<br /><br />--------------------------------------------------<br />"
i = 0
rs.movenext
loop
|
Ausgabe:
****
--------------------------------------------------
domain: @sub1.sub2.test-1.de
enderg: de.test-1.sub2.sub1@
****
Es ist sicherlich nicht die sauberste Lösung, aber für meine Zwecke reicht es aus.
Was meint Ihr sollte ich in Zukunft das Script umbauen da es evtl auf Fehler auflaufen kann und wie marx schon sagte mit Feldern arbeiten?
gruß
kash
Zuletzt bearbeitet von Kash am Mi 12.03.2008 11:50, insgesamt 1-mal bearbeitet
|
|
|
|
|
dummy
Dabei seit: 16.02.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 13.03.2008 10:08
Titel
|
|
|
muss es asp sein?
in php wäre das ganze ein einzeiler...
zumindest wenn das muster immer gleich wäre -> @<string>.<string>.<string>.<string>
siehe preg_replace
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Do 13.03.2008 10:35
Titel
|
|
|
in php kämst du sehr auch elegant und schnell mit explode(), array_reverse() und implode() ans ziel.
würde mich wundern, wenns nichts vergleichbares in asp gäbe....
|
|
|
|
|
|
|
|
Ähnliche Themen |
RegExp String zwischen 2 Zeichen in einem String entfernen
[AS] Zusammensetzen von MC Namen
mit javascript e-mail adresse zusammensetzen
Adobe Bridge: Aufnahmen zusammensetzen
Einfaches html: wie h1 in h2 bzw. umgekehrt
BR - Tags in Zeilenumbrüche konvertieren und umgekehrt ...
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|