Strings
-
- Messages : 1092
- Inscription : mer. 28/janv./2004 16:22
- Localisation : 76
- Contact :
Strings
Bon ceci ne sera pas un sujet de charme, mais un sujet vachement serieux !
string$ <> string.s ! J'ai vérifié avec le compilateur.
déclarez string.b puis string$, tout va bien.
déclarez string.b puis string.s, tout va mal !
De plus Procedurereturn string$ ne fonctionnera pas, mais Procedurereturn string.s si...
Cela m'amene a une question quel est alors l'interet de l'écriture string$ ?
string$ <> string.s ! J'ai vérifié avec le compilateur.
déclarez string.b puis string$, tout va bien.
déclarez string.b puis string.s, tout va mal !
De plus Procedurereturn string$ ne fonctionnera pas, mais Procedurereturn string.s si...
Cela m'amene a une question quel est alors l'interet de l'écriture string$ ?
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL
-
- Messages : 1092
- Inscription : mer. 28/janv./2004 16:22
- Localisation : 76
- Contact :
Non ! e j'avais remarqué que ce n'étaient pas deux memes vairables, mais quel est l'interet de deux ecriture ? Pourquoi ne pas en utiliser qu'une ?
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL
Regarde bien lorsque tu déclare des variables, exemple alpha.b, plus loin dans le code alpha, il faut deviner c'est quoi le type de variable il s'agit.
Moi au début j'utilisais le .s mais après avoir passé 4-5 heures à chercher un bogue j'utilise le $ pour une variable type chaine de caractère.
Et pour les autres je fais comme ça : Alpha_byte.b, Beta_word.w, Iota_long.l, Gamma_float.f.
Je pourrais faire aussi Omega_string.s mais il est plus rapide à mon sens de faire Omega$ pour les chaînes de caractères.
Comme ça je peux plus facilement relire mon code. C'est certain que pour une procédure simple c'est un peu poussé de faire ça, mais si les variables sont Global ou Shared c'est là que les bogues peuvent apparaîtrent et être très difficile à trouver.
Exemple : Alpha Beta et Iota sur des opérations mathématique avec des petites valeurs personne ne verra la différences entre un Byte, un Word ou un Long. Mais dans certain cas, ça peut causer bien des problèmes de débordement mémoire.
Alpha.b
Beta.w
Iota.l
...
2800 lignes plus loin dans le code
...
Beta = 100
Iota = 120
Alpha = Beta + Iota et ça donne -36 comme résultat et non pas 220.
À mon sens si on code comme ça
Alpha_byte.b
Beta_word.w
Iota_long.l
...
2800 lignes plus loin dans le code
...
Beta_word = 100
Iota_long = 120
Alpha_byte = Beta_word + Iota_long, ça saute aux yeux tout de suite que ça risque fortement de boguer.
Tout ça pour dire que c'est important de bien différencier les variables.
A+
Guimauve
Moi au début j'utilisais le .s mais après avoir passé 4-5 heures à chercher un bogue j'utilise le $ pour une variable type chaine de caractère.
Et pour les autres je fais comme ça : Alpha_byte.b, Beta_word.w, Iota_long.l, Gamma_float.f.
Je pourrais faire aussi Omega_string.s mais il est plus rapide à mon sens de faire Omega$ pour les chaînes de caractères.
Comme ça je peux plus facilement relire mon code. C'est certain que pour une procédure simple c'est un peu poussé de faire ça, mais si les variables sont Global ou Shared c'est là que les bogues peuvent apparaîtrent et être très difficile à trouver.
Exemple : Alpha Beta et Iota sur des opérations mathématique avec des petites valeurs personne ne verra la différences entre un Byte, un Word ou un Long. Mais dans certain cas, ça peut causer bien des problèmes de débordement mémoire.
Alpha.b
Beta.w
Iota.l
...
2800 lignes plus loin dans le code
...
Beta = 100
Iota = 120
Alpha = Beta + Iota et ça donne -36 comme résultat et non pas 220.
À mon sens si on code comme ça
Alpha_byte.b
Beta_word.w
Iota_long.l
...
2800 lignes plus loin dans le code
...
Beta_word = 100
Iota_long = 120
Alpha_byte = Beta_word + Iota_long, ça saute aux yeux tout de suite que ça risque fortement de boguer.
Tout ça pour dire que c'est important de bien différencier les variables.
A+
Guimauve
Voyons donc toi, ça marche certain, tu as certainement oublié de définir le type de la procedure.De plus Procedurereturn string$ ne fonctionnera pas, mais Procedurereturn string.s si...
Cela m'amene a une question quel est alors l'interet de l'écriture string$ ?
Code : Tout sélectionner
Procedure$ Chaine()
Chaine$ = "Allo le monde"
ProcedureReturn Chaine$
EndProcedure
Debug Chaine()
Code : Tout sélectionner
Procedure.s Chaine()
Chaine$ = "Allo le monde"
ProcedureReturn Chaine$
EndProcedure
Debug Chaine()
Code : Tout sélectionner
Procedure.s Chaine()
Chaine.s = "Allo le monde"
ProcedureReturn Chaine
EndProcedure
Debug Chaine()
A+
Guimauve
tu peux faire comme les gugusses de l'institut pascal (pascalissime....)Guimauve a écrit :Regarde bien lorsque tu déclare des variables, exemple alpha.b, plus loin dans le code alpha, il faut deviner c'est quoi le type de variable il s'agit.
une chaine de carcatère en local = l_str_ma_chaine
en global = g_str_ma_chaine
etc
et la toc tu sais exactement à quelle type de variable tu as affaire....
mais un fonction genre typeof() du genre de pascal serait la bienvenue...
patrick