mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 11:56 Benutzername: Passwort: Auto-Login

Thema: string aufteilen und umgekehrt wieder zusammensetzen vom 11.03.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> string aufteilen und umgekehrt wieder zusammensetzen
Autor Nachricht
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Di 11.03.2008 16:30
Titel

string aufteilen und umgekehrt wieder zusammensetzen

Antworten mit Zitat Zum Seitenanfang

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?
  View user's profile Private Nachricht senden
Marx

Dabei seit: 28.10.2006
Ort: Wien
Alter: 52
Geschlecht: Männlich
Verfasst Di 11.03.2008 22:17
Titel

Antworten mit Zitat Zum Seitenanfang

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
};
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Mi 12.03.2008 11:49
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
dummy

Dabei seit: 16.02.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 13.03.2008 10:08
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Do 13.03.2008 10:35
Titel

Antworten mit Zitat Zum Seitenanfang

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....
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ä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 ...
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


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.