Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Correspondance Mid (instruction) Vb C# [ Système / Exécution ] (jrivet)

mercredi 26 mars 2008 à 15:09:09 | Correspondance Mid (instruction) Vb C#

jrivet

Membre Club
Salut à tous.

Voilà déjà une ou deux heures que je tourne ne rond sans trouver de réelle réponse à ma question.

En VB6 il existe l'instruction Mid qui permet de remplacer un nombre indiqué de caracteres dans une variable String par des autres caracteres.


Mid
(stringvar, start[, length]) =string
ÉlémentDescription
stringvarNom de la variable chaîne à modifier.
startDonnée de type Variant (Long). Position du caractère dans l'argument stringvar où commence le remplacement de texte.
lengthFacultatif. Donnée de type Variant (Long). Nombre de caractères à remplacer. Si ce paramètre est omis, la totalité de l'argument string est utilisée.
stringExpression de chaîne qui remplace une partie de l'argument stringvar.


Question simple: existe t il une fonction equivalente dans le FrameWork, ou bien faut il la "réécrire"

en attendant vos réponses: Google is my friend
Merci de m'avoir lu
@+: Ju£i€n
Pensez: Réponse acceptée

mercredi 26 mars 2008 à 15:14:18 | Re : Correspondance Mid (instruction) Vb C#

sebmafate

Membre Club Administrateur CodeS-SourceS
hum... as-tu cherché un peu dans la doc ?

string toto = "lnzeldnzelnd";

toto.SubString(...);




Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

mercredi 26 mars 2008 à 15:19:52 | Re : Correspondance Mid (instruction) Vb C#

jrivet

Membre Club
Salut,
Mid a deux "fonctions"
CE que je cherche a faire, n'est PAS l'extraction de caracteres mais la "substitution".

du genre (qui ne fonctionne pas)

string p = "J'AI TESTE";
p.Substring(4,3) = "PAS";


Voila j'espère que c'est plus claire.




@+: Ju£i€n
Pensez: Réponse acceptée

mercredi 26 mars 2008 à 15:28:06 | Re : Correspondance Mid (instruction) Vb C#

sebmafate

Membre Club Administrateur CodeS-SourceS
non... il n'y a aucune "Instruction" qui fait ça en .net.

Mais je pense qu'écrire une méthode qui fait ça proprement doit prendre... 5sec :

public string ReplaceAt(string inputString, int start, int length, string replaceString) {
   return string.Concat(inputString.Left(start), replaceString, inputString.SubString(start + length));
}

(pas testé)


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

mercredi 26 mars 2008 à 15:30:20 | Re : Correspondance Mid (instruction) Vb C#

Miltiades

Membre Club
je pense seb, qu'il cherche plutot a faire un mix entre string.insert ( [ Lien ] )
et string.remove ( [ Lien ] )

car a ma connaissance il n'existe pas de fonction peremettant de remplacer dans une chaine n caracteres à la position x ...
ce qui etait ce que tu cherchais, non?

Nul ne devient grand par la guerre...

mercredi 26 mars 2008 à 15:30:58 | Re : Correspondance Mid (instruction) Vb C#

Miltiades

Membre Club
oups, trop lent a repondre moi...

Nul ne devient grand par la guerre...

mercredi 26 mars 2008 à 15:34:57 | Re : Correspondance Mid (instruction) Vb C#

sebmafate

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
piouff... string.Left n'existe pas

public string ReplaceAt(string inputString, int start, int length, string replaceString) {
   return string.Concat(inputString.Substring(0, start), replaceString, inputString.Substring(start + length));
}


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

mercredi 26 mars 2008 à 15:43:33 | Re : Correspondance Mid (instruction) Vb C#

jrivet

Membre Club
Re,
Merci de vous être pencher sur le sujet.
Rien n'existe déjà, donc.

Je sais que cela ne prends longtemps de les réécrire mais étant donné que le FrameWork est vaste, je pensais que quelques chose existait déjà, ca evite parfois de réinventer la roue. Sachant que souvent on la réinvente carré

La concordance sera donc


public string ReplaceAt(string inputString, int start, int length, string _
  replaceString)
{
    replaceString = replaceString.Substring(0, length);
    return string.Concat(inputString.Substring(0, start), replaceString, _
      inputString.Substring(start+ length));
}
(Coloration syntaxique automatique par Kenji)

Merci
@+: Ju£i€n
Pensez: Réponse acceptée

mercredi 26 mars 2008 à 15:44:32 | Re : Correspondance Mid (instruction) Vb C#

Miltiades

Membre Club
Réponse acceptée !
avec ma methode ca donne:

public string ReplaceAt(string inputString, int start, int length, string replaceString) 
{
    return inputString.Remove(start, length).Insert(start, replaceString);
}

je pense pas que ce soit plus rapide, mais perso je la trouve plus lisible...
(non testé...)

Nul ne devient grand par la guerre...

mercredi 26 mars 2008 à 15:51:25 | Re : Correspondance Mid (instruction) Vb C#

sebmafate

Membre Club Administrateur CodeS-SourceS
Miltiades... j'aime bien aussi ta méthode...

et pour ceux qui fond du Framework .net 3.5 :



public string ReplaceAt(this string inputString, int start, int length, string replaceString) {
    return inputString.Remove(start, length).Insert(start, replaceString);
}
















Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]





1 2

Cette discussion est classé dans : string, mid, instruction, argument, stringvar


Répondre à ce message

Sujets en rapport avec ce message

Pb avec mon programme - help... [ par adrien78 ] Voici les sources de mon programme il bug :// project created on 09/11/2002 at 10:51// By Adrien HADJ SALAH// http://www.informatick.com// Pour me rem Propriété Get et Let en C# ? [ par DrChal ] DrChalSalutJ'aimerai convertir en C#, le code vb suivant en C#:Dim sOpsArgsDataBase As String Public Property Let OpsArgsDataBase(sArgsDataBase As Str string to int [ par fredza ] Pouvez vous m'aider SVP*/Prendre les caractères d'une textbox et les concaténer puis les retransformer en string (pas obligatoire)(EX A=65, B=66 ... d Prise de tête avec ToString [ par Wolf ] COMMENT FAIRE POUR TRANSFORMER UN TABLEAU DE BYTE EN STRING????????????????Mes murs commence à s'écrouler à force de me tapper la tête dedans!Voilà 2 Majuscules - minuscules [ par gg00xiv ] comment fait-on pour mettre une chaine de caracteres (String ou string) toute en minuscule ou toute en majuscules.Genre un Upper() ou Lower()Merci String (tableau) [ par JCpp ] Comment on realise un tableau de string en C# ?exemple :string [] a; // a[0]="toto"; a[1]="titi";Mercihttp:// Lancer une application en passant un argument [ par pyranea ] Comment peut on lancer une application qui necessite un argument a l'aide de C# ?Merci d'avance.[;-)]Pyranea Help conversion string en double [ par JCpp ] comment on convertir une chaine "string" en "double" avec visual studio .net c# ?exemple :string toto = "123.45";double titi = toto.??????????http://p Prob avec Array [ par Morpheus51Neo ] Voilà, je reprend un prog de SmallTalk pour le remettre en C#.Voici le problème de programmation qui se pose :Je n'arrive pas à utiliser Contains pour pb avec outlook [ par Jula ] recoucou,voilà, j'ai un problème en essayant d'utiliser msoutl9:je fais au début:msoutl9.Application objOutlook = new msoutl9.ApplicationClass();et à


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.