Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  FAQFAQ  SuchenSuchen  AnmeldenAnmelden  MitgliederMitglieder  LoginLogin  

Austausch | 
 

 Teilstring ersetzen

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Teilstring ersetzen   Fr Feb 27, 2009 10:44 pm

Soo...
Ich hab jetzt mal entschieden mal wieder was schönes zu entwickeln.
Nun zu meinem Problem:

Ich habe eine Zeichenkette.
Ich will alle vorkommen einer anderen Zeichenkette durch eine wiederrum andere ersetzen.
In der Doku hab ich keinen Befehl gefunden.
Meine Frage:
Muss ich das irgendwie mit ner schleife lösen?
Nach oben Nach unten
Benutzerprofil anzeigen
Gamer
Staatsrat
Staatsrat
avatar

Männlich Alter : 22
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

BeitragThema: Re: Teilstring ersetzen   Fr Feb 27, 2009 11:07 pm

Man kann das doch einfach wie bei einer Variablenzuweißung machen...
es gibt doch speicherbare Strings.
Es gibt auch einen Operator dafür.

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Re: Teilstring ersetzen   Fr Feb 27, 2009 11:14 pm

Wie jetzt?
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Teilstring ersetzen   Fr Feb 27, 2009 11:18 pm

Das ist garnicht so einfach und auch nicht kurz erzählt. Erzähl entweder was du vorhast (vielleicht gibts da bessere lösungen)
Ansonsten schau dir das an, baue eine funktion string GetAscii() und ganz viele weitere böse dinge. Komplette strings kannst du mit S= (strict2 auch ==) vergleichen, d.h du musst den string nur aufsplitten, was ein einmaliger großer aufwand ist.

Ansonsten würde ich mal in System.c4g/Commits.c gucken, vielleicht gibts dort ein string split script.
Nach oben Nach unten
Benutzerprofil anzeigen
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Re: Teilstring ersetzen   Fr Feb 27, 2009 11:26 pm

Die funktionen hab ich schon durch.
Ich will ja nicht nur ein zeichen ersetzen.
Was ich erst machen wollte, war in ner Schleife mit Wildcard Match durchgehen.
Ich wollt einfach fragen, ob das auch intelligenter geht.
Nach oben Nach unten
Benutzerprofil anzeigen
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Re: Teilstring ersetzen   Sa Feb 28, 2009 12:33 am

Oder wie wüdet ihrs machen?
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Teilstring ersetzen   Sa Feb 28, 2009 2:02 am

Solange wir nicht wissen was du machen willst, sondern nur wie du es machen willst können wir dir eigentlich garnicht helfen.
Nach oben Nach unten
Benutzerprofil anzeigen
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Re: Teilstring ersetzen   Sa Feb 28, 2009 2:06 am

Ich will nen clonk machen, mit dem man chatten kann.
So ne Art chatbot.
Kennt wer von euch eliza?
Nach oben Nach unten
Benutzerprofil anzeigen
Liech
Fregattenkapitän
Fregattenkapitän


Männlich Alter : 26
Anmeldedatum : 02.02.09

BeitragThema: Re: Teilstring ersetzen   Sa Feb 28, 2009 2:11 am

Ja, da brauchst du wirklich aufwand:\
Am besten du baust dir ersteinmal eine riesige funktionssammlung um strings zu manipulieren (Diese kannst du wunderbar hochladen, braucht sicher jeder mal)
Du kannst jedes zeichen einzeln extrahieren, zurück übersetzen (mit der entsprechenden funktion), wieder teilweise nach wunsch zusammenfügen und dann kannst du sie untersuchen. Was besseres fällt mir jetzt nicht ein.
Nach oben Nach unten
Benutzerprofil anzeigen
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Re: Teilstring ersetzen   Sa Feb 28, 2009 2:16 am

Ich versteh zwar nicht, was du meinst, aber ich mach das jetzt so wieichs anfangs auch schon wollte.
Nach oben Nach unten
Benutzerprofil anzeigen
Mega Hazard
Staatsrat
Staatsrat
avatar

Männlich Alter : 25
Ort : Brunswiek *helllau*
Anmeldedatum : 24.01.08

BeitragThema: Re: Teilstring ersetzen   Sa Feb 28, 2009 11:14 am

Du müsstest doch eigentlich mi etwas if(), for() und GetChar bzw. GetAscii das schaffen können. Zum Beispiel suchst du zuerst im ganzen String nach einem Buchstaben des Teilstrings, dann links bzw. rechts davon nach den Anderen.

_________________
"The 1337 2[_]1€z, but u don't know..."
Nach oben Nach unten
Benutzerprofil anzeigen http://megahazard.lima-city.de/Main.htm
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Re: Teilstring ersetzen   Sa Feb 28, 2009 12:54 pm

Auch ne gute Möglichkeit!
Andere Idee:
Eigentlich bräuchte man nur herrausfinden, wo sich der Teilstring befindet.
DAs könnte man mit ner Schleife realisieren, die den zu durchsuchenden string verkleinert und dan nach dem Teilstring sucht.
Nach oben Nach unten
Benutzerprofil anzeigen
kevda
Feldmarschall
Feldmarschall


Anmeldedatum : 08.05.08

BeitragThema: Re: Teilstring ersetzen   Sa Feb 28, 2009 10:48 pm

Ich würde vorschlagen erst mit Wildcardmatch überprüfen ob der String1 überhaupt im String2 vorhanden ist und dann würde ich den String2 durchgehen bis man auf den bestimmten String1 kommt. Bei Schritt zwei muss du lediglich mehrmals mit GetChar überprüfen.

So eine FindStringInString Funktion kann man ruhig uploaden aufn CCAN, muss dann nur noch paar weitere nützliche String-Funktionen hinzufügen.
Nach oben Nach unten
Benutzerprofil anzeigen
Vadim_Rodin
Kadett
Kadett
avatar

Männlich Alter : 20
Ort : Scheer
Anmeldedatum : 19.01.09

BeitragThema: Re: Teilstring ersetzen   So März 01, 2009 11:01 am

Willst du so ein chatbot machen wie bei Der Szen Tal Des Blutes Oder? wenn ich mich nicht irre
Nach oben Nach unten
Benutzerprofil anzeigen
TqmTqm
Clonk
Clonk


Anmeldedatum : 23.02.09

BeitragThema: Re: Teilstring ersetzen   So März 01, 2009 8:12 pm

so

hab dir mal ein paar funktionen geschrieben :

Code:

#strict

//TqmTqms kleine Stringfunktionen
//enthalten bis jetzt:

// string StrReplace(string zeichenkette,string suchMuster,string ersetzenDurch)
// string SubStr(int start,string zeichenkette,int ende)
// string func CharAt(string zeichenkette,int i)
// string func GetBuchstabe(int zahl)




   //string StrReplace(string zeichenkette,string suchMuster,string ersetzenDurch)by TqmTqm
   //die funktion StrReplace durchsucht die gesamte "zeichenkette" nach dem "suchMuster" und ersetzt
   //dieses durch "ersetzeDurch" und gibt dann den modifizierten string zurück

func StrReplace(string zeichenkette,string suchMuster,string ersetzenDurch){
   for (var i = 0;i<GetLength(zeichenkette);i++){
      if (suchMuster eq SubStr(i,zeichenkette,GetLength(suchMuster)+i))
         zeichenkette = Format("%s%s%s",SubStr(0,zeichenkette,i),ersetzenDurch,SubStr(GetLength(suchMuster)+i,zeichenkette,GetLength(zeichenkette)));   
   }
   return(zeichenkette);
}

   //string SubStr(int start,string zeichenkette, int ende) by TqmTqm
   //die funktion SubString erzeugt aus der übergebenden zeichenkette
   //einen teilstring. start makiert dabei das erste zeichen was angezeigt werden soll
   //um beispielsweise aus "Clonk" "lonk" zumachen müsste man SubStr(1,"Clonk") aufrufen
   //bei start 0 würde wieder Clonk herauskommen. Außerdem gibt es noch optional den 'ende'
   //parameter, damit kann man das ende des neuen strings festlegen
   //SubStr(1,"Hamburger",4) erzeugt beispielsweise "amb"
   //weitere stringfunktionen sind in arbeit


func SubStr(int start,string zeichenkette,int ende){

   var neueZeichenkette = "";
   for (var i = 0;i<GetLength(zeichenkette) && (i < ende || ende == 0);i++){
      if (i >= start)
         neueZeichenkette = Format("%s%s",neueZeichenkette,GetBuchstabe(GetChar(zeichenkette,i)));
   }
   return(neueZeichenkette);
}

   //string CharAt(string zeichenkette,int zahl) by TqmTqm
   //die funktion CharAt ist wie GetChar, blos das sie
   //statt dem int wert den wirklichen buchstaben zurückgibt


func CharAt(string zeichenkette,int i){
   return (GetBuchstabe(GetChar(zeichenkette,i)));
}

   //string GetBuchstabe(int zahl) by TqmTqm
   //die funktion GetBuchstabe erzeugt aus einer übergebenen zahl den druckbaren ascii buchstabe

func GetBuchstabe(int zahl){
   var asciiArray = [" ","?","!","''","#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","Backslash","]","^","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~"];
   return(asciiArray[zahl-32]);
}

und hier nochmal als script, wie du das einbindest musst du überlegen

script.c

und wie immer hätte ich gerne feedback, wünsche, verbesserungsvorschläge

glg tqmtqm
Nach oben Nach unten
Benutzerprofil anzeigen
trike994
Konteradmiral
Konteradmiral


Männlich Alter : 23
Anmeldedatum : 10.12.08

BeitragThema: Re: Teilstring ersetzen   So März 01, 2009 8:15 pm

sieht cool aus
Nach oben Nach unten
Benutzerprofil anzeigen
kevda
Feldmarschall
Feldmarschall


Anmeldedatum : 08.05.08

BeitragThema: Re: Teilstring ersetzen   So März 01, 2009 10:59 pm

Bei Format kann man auch %c angeben um eine Ascii Zahl umzuwandeln in ein Symbol.

Sieht alles eigentlich ganz gut aus bisher.
Nach oben Nach unten
Benutzerprofil anzeigen
Vadim_Rodin
Kadett
Kadett
avatar

Männlich Alter : 20
Ort : Scheer
Anmeldedatum : 19.01.09

BeitragThema: Re: Teilstring ersetzen   Di März 03, 2009 6:48 pm

gut,
jetzt brauch noch Höfi was schreiben^^ queen
Nach oben Nach unten
Benutzerprofil anzeigen
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Re: Teilstring ersetzen   Di März 03, 2009 6:51 pm

Was denn?
ja werd ich machen^^
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Teilstring ersetzen   

Nach oben Nach unten
 
Teilstring ersetzen
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Vorhandenes Bild entfernen oder ersetzen?
» "Laune" durch Smileys ersetzen
» Überschriften durch Bilder ersetzen

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Anfragen-
Gehe zu: