AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 string_sep_ get / set / add _arg

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
SPLN
Utilisateur confirmé: Rang ***
avatar

Messages : 588
Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça
Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)

MessageSujet: string_sep_ get / set / add _arg   Lun 30 Jan 2012 - 10:05

Alors grosso-modo ces scripts servent à récupérer des "arguments" ou plutôt du texte séparé par un séparateur et je peux choisir quel argument je veux récupérer ou modifier. Personnellement je l'ai appelé comme ça car quand je créer un "type" de fichier ou des listes j'ai tendance à utiliser des séparateurs du genre chr(0) ou "|", pour séparer des infos (dans une même ligne dans le cas des listes).

string_sep_get_arg a écrit:

var a, c, ch, i, l, r, sep, t;
t = argument0 // text
sep = argument1 // sep
a = argument2 // arg n°
l = string_length( t )

if (a > string_count( sep, t ) ) or (a < 0) { show_error("Aucun argument trouvé.",false) ; return "" }

c = 0 // sep count
r = ""

for ( i = 1 ; c <= a and i <= l ; i += 1 ) {

ch = string_copy( t, i, 1 )
if ( c == a && ch != sep ) { r += ch }
if ( ch == sep ) { c += 1 }

}

return r;

string_sep_set_arg a écrit:

var a, c, ch, i, l, p1, p2, sep, t, v;
t = argument0 // text
sep = argument1 // sep
a = argument2 // arg n°
v = string( argument3 ) // value
l = string_length( t )

c = 0 // sep count
p1 = ""
p2 = ""

for ( i = 1 ; i != l+1 ; i += 1 ) {

ch = string_copy( t, i, 1)

if ( c < a ) { p1 += ch }
if ( c > a ) { p2 += ch }
if ( ch == sep ) {

if ( c == a ) { p2 += ch }
c += 1

}

}

return ( p1 + v + p2 );

string_sep_add_arg a écrit:

var a, c, ch, i, l, p1, p2, sep, t, v;
t = argument0 // text
sep = argument1 // sep
a = argument2 // arg n°
v = string( argument3 ) // value
l = string_length( t )

c = 0 // sep count
p1 = ""
p2 = ""

for ( i = 1 ; i <= l ; i += 1 ) {

ch = string_copy( t, i, 1)

if ( c < a ) { if ( i == l ) { p2 += ch + ( a - c )*sep + v }
else { p1 += ch }
}
if ( c > a ) { p2 += ch }
if ( c == a ) { p1 += v + sep + ch ; c += 1 }
if ( ch == sep && c != a+1 ) {

c += 1

}

}

return ( p1 + p2 );

Exemples:
string_sep_get_arg("21|23|42","|",0) = "21"
string_sep_set_arg("21|23|42","|",0,"18") = "18|23|42"

Par contre, ne pas faire:
string_sep_set_arg("21|23|42","|",4,18) sinon = "18|23|4218"

Mais, vous pouvez faire:
string_sep_get_arg("||","|",1) = ""
string_sep_set_arg("||","|",1,"02") = "|02|"

Vous pouvez également ajouter des arguments avec:
string_sep_add_arg("21|23|42","|",1,"22") = "21|22|23|42"
string_sep_add_arg("0|1","|",10,"10") = "0|1|||||||||10"

EDIT: J'ai optimisé mes scripts en remplaçant les boucles do en for et en ajoutant un script

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
master47
Utilisateur confirmé: Rang *****
avatar

Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

MessageSujet: Re: string_sep_ get / set / add _arg   Lun 30 Jan 2012 - 13:56

lol evite les chr(0) dans les strings... en C ça signifie "fin de la chaine".

http://en.wikipedia.org/wiki/Null_character

_________________
Suivez la timeline ! The PacWars Timeline
C# .NET, Web & Sound Design.
---
Oldies: http://livegallery.lescigales.org/
Lawl :
Spoiler:
 
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
SPLN
Utilisateur confirmé: Rang ***
avatar

Messages : 588
Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça
Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)

MessageSujet: Re: string_sep_ get / set / add _arg   Lun 30 Jan 2012 - 14:07

J'ai précisé pour la création de fichier Wink. C'est à dire que par exemple si je fais un système de sauvegarde customisé ou alors un fichier ou je stocke des données. Je pourrais récupérer les données au endroit voulu avec ce genre de système. Et oui j'ai fait cette expérience avec GM et un show_message() :/.

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
Contenu sponsorisé




MessageSujet: Re: string_sep_ get / set / add _arg   

Revenir en haut Aller en bas
 
string_sep_ get / set / add _arg
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: