Help

Signaler
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009
-
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009
-
J'aimerais savoir comment faire pour remplacer une chaine de caractère par une autre (contenu dans une variable).
Ex : Bonjour <nom> , vous allez bien.
-> Bonjour laurent , vous allez bien.

Merci.

11 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
int RemplaceNom(char *pszsrc, char *pszname);
Un truc comme cela t'irait ?
Avec pszsrc serait ptr sur "Bonjour <nom> , vous..." et pszname doit contenir les caracteres de remplacement.
Retourne != 0 si jeton "<nom>" est trouvé et remplacé par ce qu'il y a dans pszname, va bon ???
Aucun controle sur taille buffer pszsrc qui devra etre assez grand.
Tu me postes un message dans la matinee de mercredi si tu veux ainsi.
BruNews, ciao...
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Salut, à l'ère du C++ utilises les strings.

#include <string>
string chaine = "Salut <nom>";

void remplacer(string & a, string & b) {
a.clear();
a = b;
}

remplacer(chaine,"Salut Laurent");

En C je pense que tu peux faire ca avec
char* chaine = "Salut <Nom>";
strcpy("Salut Laurent", chaine);

Mais j'ai pas bien pigé ce que tu voulé faire, le mieux auré été une concaténation plutôt.
string chaine="Salut ";
chaine += "Laurent";

ou en C
char* chaine = "Salut ";
strcat(chaine, "Laurent ");

Voila, A+.
Bouba
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009

Ouias c'est un truc comme ca dont j'aurais besoin.
La je galère un peu..
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Petit prog complet.
Regarde + bas comment je me sers de ReplaceNOM().

#include <windows.h>
#include "resource.h"

char szbuff[120]; // 20 de plus

int ReplaceNOM(char *pszsrc, char *pszval)
{
if(pszsrc[0]) {
char *c;
if(c = strstr(pszsrc, "<nom>")) {
int len = strlen(pszval);
memmove(c + len, c + 5, strlen(c+5)+1);
memcpy(c, pszval, len);
return 1;
}
}
return 0;
}

BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
switch(mssg) {
case WM_INITDIALOG:
SetClassLong(hdlg, GCL_HICON, (long)LoadIcon(0, IDI_APPLICATION));
SendDlgItemMessage(hdlg, IDED_SRC, EM_LIMITTEXT, 100, 0);
return 1;
case WM_COMMAND:
switch(wParam) {
case IDOK:
GetDlgItemText(hdlg, IDED_SRC, szbuff, 100);
SetDlgItemText(hdlg, IDED_RES, ReplaceNOM(szbuff, "Victor Hugo") ? szbuff: 0);
return 0;
case IDCANCEL: EndDialog(hdlg, 0);
}
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_APP), NULL, AppDlgProc);
return 0;
}

BruNews, ciao...
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009

Il manque les resource.h , je vais en faire un
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Oui mais je n'ai pas voulu encombrer inutilement, c'est tellement simple.
2 zones EDIT sur une dialogbox.
La IDED_RES est readonly car sert seulement a lire resultat.
BruNews, ciao...
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

salut,

strstr ,strlen,memcpy,memmove sont dans #include <string.h>
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009

wsprintf(mData,"%s",ReplaceNOM(cmd,lol)? cmd:0);

cmd: char*cmd;
lol est : char lol[250];
ca afiche toujours la 1°valeur de la variable lol (qui change presque tous le temps)
pk?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
wsprintf admet 0 comme param pour "%s" ???
Tu veux le prog fait ?
Passe moi ton mail par message sur le site.
BruNews, ciao...
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
T'es certain que wsprintf admet 0 comme param pour "%s" ?
Tu veux le prog complet, passe moi ton mail par message sur le site.
BruNews, ciao...
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009

C'est bon je t'ai envoyé un message.