Gambas France BETA


Pas de compte ? Incription

autocompletion, ca me fatigue...

Ce sujet est résolu.

1
AuteurMessages
spheris#1 Posté le 12/6/2022 à 21:15:45
essayez de taper ce code

1
b = Replace(b, "\", "")"


Je n'y arrive pas, cela m'ajoute un guillemet, n'est ce pas possible d'enlever cette option?
Merci de votre reponse.

meme le site cela ne fonctionne pas, il ajoute un troisieme guillemets apres la parenthese
vuott#2 Posté le 12/6/2022 à 21:58:11
Ne cedere ineluctabili possimusJe voulais vous demander quelle est la chaîne contenue dans la variable "b" ?
En particulier : dans la chaîne quel caractère y a-t-il après le caractère \ ?
« Vita non suavis esse potest, nec Mors amara. »
valaquarus#3 Posté le 13/6/2022 à 15:24:55
-- Unus Ex Altera --Bonjour Spheris,
est ce cela :
1
b=Replace(b,"\",")")"

ou cela qui est similaire :
1
b=Replace(b,"\",")

ou encore cela :
1
b=Replace(b,"\",'")"')"

Result = Replace ( String , Pattern , ReplaceString [ , Comparison ] )
Remplace chaque occurrence de la chaîne Pattern dans la chaîne String par la chaîne ReplaceString , et retourne le résultat.
Ici tu as un problème de quote pour le dernier caractère à savoir ")" qui n'est pas pris en compte, seule le caractère " est renvoyé.
Essayes \ ou ' ou autre chose pour échapper le caractère ")" .
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
valaquarus#4 Posté le 13/6/2022 à 20:05:17
-- Unus Ex Altera --Bonsoir Spheris,
j'ai essayé à plusieurs reprises d'utiliser replace () et effectivement j'ai le même souci d'ajout quasi instantané d'une dernière guillemet à la fin de la commande.
Ça ressemble furieusement à un bug mais je ne sais pas le rapporter à la maison mère.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
valaquarus#5 Posté le 13/6/2022 à 20:11:26
-- Unus Ex Altera --Rebonsoir Spheris,
Vuott m'a mis sur la voie :
1
2
3
4
5
6
PUBLIC SUB Main()

PRINT "Hello world"
PRINT Replace("Hello world", "o", "*")

END

ceci fonctionne bien donc tout doit venir de la définition ou de l'initialisation de b dans ton exemple.
Philippe
Peut être te suffit il de remplacer b par la valeur de la chaîne qu'il contient pour que cela fonctionne.
J'ai essayé ceci :
1
2
3
4
5
6
7
8
9
PUBLIC SUB Main()

DIM b AS STRING

PRINT "Hello world"
b = "Hello world"
PRINT Replace(b, "o", "*")

END
et cela fonctionne aussi.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
valaquarus#6 Posté le 13/6/2022 à 20:36:49
-- Unus Ex Altera --Spheris :
si ta chaîne b contient effectivement le caractère \ il faut l'échapper pour pouvoir le saisir dans la fonction replace.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUBLIC SUB Main()

DIM b AS STRING

PRINT "Hello world"
b = "Hello world"
PRINT Replace(b, "o", "*")
b = "" "\"variable " "\" desiree " ""
PRINT Replace(b, "" "\"", "*")

Résultat :
Hello world
Hell* w*rld
*variable * desiree

Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
spheris#7 Posté le 14/6/2022 à 01:56:11
Merci pour vos reponses mais il s'agit bien d'un bug de l'IDE que je peux me debarasser en faisant tout simplement:
1
b= Replace( b, Chr(92), Chr(32)) 'remplacement de l'antislash par un simple espace.

b est un string qui contient l'integralite d'un fichier texte au format html corrompu .
la base de donnees de gambaslinux a ete attaque a plusieurs reprises et le code html de chaque article est un vrai casse tete.
(ajout de spam de pub, ajout de caracteres non autorises ou meme ajout de point virgule un peu partout dan les articles)

Je bosse en ce momemt sur un convertisseur / nettoyeur de fichier article guppy vers XML.
Cela fonctionne plutot pas mal hors mis de bosser sur un clavier anglais sans accent.

Merci pour votre aide.
;)
valaquarus#8 Posté le 14/6/2022 à 10:24:15
-- Unus Ex Altera --Spheris,
je ne pense pas que ce soit un bug mais c'est plutôt lié au fait que le caractère \ soit réservé dans gambas pour la DIV(ision).
Donc soit on échappe le caractère soit on lui substitue son code ascii, ici chr(92).
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5
vuott#9 Posté le 14/6/2022 à 13:10:25
Ne cedere ineluctabili possimus
...le caractère \ soit réservé dans gambas pour la DIV(ision)

J'ajoute que le caractère \ est utilisé comme "escape".
C'est pourquoi je demandais quel personnage il y avait après \ .
« Vita non suavis esse potest, nec Mors amara. »
spheris#10 Posté le 14/6/2022 à 16:19:53
merci pour vos reponses, malheureusement vuott, je ne peux dire quel caractere il y a apres le \ car il y en a beaucoup.
Mais j'ai trouve la reponse, merci
1