|
Trouver une ressource
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 : Recuperation date system UNICODE [ Archives / Au secours ] (raton)
Informations & options pour cette discussion
jeudi 28 juillet 2005 à 10:43:09 |
Recuperation date system UNICODE

raton
|
Salut a tous... Me revoila dans mes peregrinations pour faire ce que je veux avec ce ***** d'UNICODE. J'essaie en ce moment de recuperer la date sys dans une chaine. Voila comment je m'y prend pour le moment : SYSTEMTIME datesys; GetSystemTime(&datesys); Jusque la pas de probleme... Vient ensuite de creer une chaine de caractère a partir de ca... TCHAR[30] strdate; TCHAR *tmp = strdate; wcscat(tmp,datesys.wDay); J'essaie ensuite de creer un fichier qui porterai ce nom FILE *fichiertest; fichiertest = _wfopen (test, TEXT("w")); Mais voila... Rien ne se crée... Je penses que le probleme vient de wcscat qui m'a poser plein de probleme comme par exemple, si j'essaue de concatener plusieurs chaine ensemble avec et ensuite de les affichier n'importe ou, le texte arrive bugger. Par exemple si je concatennes "LIEU", une var, "ILOT", une var je vais me retrouver avec unevar"ILOT"unevar. le premier lieu a disparu. Et lors des chargements futurs ce sera de pire en pire... Quelqu'un aurait il une idée ? Merci d'avance
Mess with the best Die Like the rest
|
|
|
jeudi 28 juillet 2005 à 11:02:29 |
Re : Recuperation date system UNICODE

BruNews
|
Evite de mélanger le codage, si tu utilises API (impec) faut rester cohérent. HANDLE hfl; hfl = CreateFile(...); les FILE* et autres bidules de ce genre n'ont rien à faire ici.
wcscat est pour concaténer des chaines, on ne concat pas du binaire. ultow devrait aller mieux.
ciao... BruNews, MVP VC++
|
|
|
jeudi 28 juillet 2005 à 11:14:14 |
Re : Recuperation date system UNICODE

raton
|
Tu es definitivement mon maitre :)
Merci beaucoup !
Mess with the best Die Like the rest
|
|
|
jeudi 28 juillet 2005 à 11:41:36 |
Re : Recuperation date system UNICODE

raton
|
Definitivement ce wcscat me pose probleme... voila comme je genere le nom de mon fichier
TCHAR* CFichier::GenNom() { TCHAR strdate[30],datepart[10]; TCHAR* test = strdate; TCHAR* tmp = datepart; SYSTEMTIME datesys; GetSystemTime(&datesys); wcscat(test,TEXT("INVE"));
_ultow(datesys.wDay,tmp,10); wcscat(test,tmp); _ultow(datesys.wMonth,tmp,10); wcscat(test,tmp); _ultow(datesys.wYear,tmp,10); wcscat(test,tmp); _ultow(datesys.wHour,tmp,10); wcscat(test,tmp); _ultow(datesys.wMinute,tmp,10); wcscat(test,tmp); _ultow(datesys.wSecond,tmp,10); wcscat(test,tmp); wcscat(test,TEXT(".txt"));
return test; }
Et en sorti j'ai...??????? `?
Pourtant lorsque je ne mets que INVE et le jour ca marche nickel...
Mess with the best Die Like the rest
|
|
|
jeudi 28 juillet 2005 à 11:59:28 |
Re : Recuperation date system UNICODE

BruNews
|
mais c'est quoi tout cela ??? faut te plonger dans un bouquin de C illico sinon tu vas perdre du temps et rien de plus, je le dis pour ton bien alors ne le prends pas mal. On ne peut pas retourner une adresse sur pile (return test;) dont les octets ont toute chance d'être écrasés en sortie de fonction, celle ci relevant ESP (ou l'appelant) à sa sortie. On passe adresse d'un buffer à la fonction qui le remplira, voila une méthode saine.
ciao... BruNews, MVP VC++
|
|
|
jeudi 28 juillet 2005 à 13:40:38 |
Re : Recuperation date system UNICODE

raton
|
C'est pas tant le C ou le C++ qui me pose probleme... C'est juste que je manques un peu d'entrainement sur les pointeurs... Et que mon boss est tellement rat qu'il y a pas moyen d'avoir un bouquin...
Bon j'ai un peu modifier suivant tes indications mais c'est pas encore ca... Je sais qu'il me manque une connerie mais j'arrives pas a trouver quoi...
TCHAR NomFichier[30]; TCHAR *strfichier = NomFichier;
Je passes nomfichier dans la fnc
void CFichier::GenNom(TCHAR *p_Type, TCHAR *p_Retour) { TCHAR strdate[30],datepart[10]; TCHAR *test = strdate; TCHAR *tmp = datepart; SYSTEMTIME datesys; GetSystemTime(&datesys); wcscat(test,p_Type);
_ultow(datesys.wDay,tmp,10); wcscat(test,tmp); _ultow(datesys.wMonth,tmp,10); wcscat(test,tmp); _ultow(datesys.wYear,tmp,10); wcscat(test,tmp); _ultow(datesys.wHour,tmp,10); wcscat(test,tmp); _ultow(datesys.wMinute,tmp,10); wcscat(test,tmp); _ultow(datesys.wSecond,tmp,10); wcscat(test,tmp); wcscat(test,TEXT(".txt"));
*p_Retour =*test; }
Mess with the best Die Like the rest
|
|
|
jeudi 28 juillet 2005 à 14:15:30 |
Re : Recuperation date system UNICODE

BruNews
|
Réponse acceptée !
void GenNom(TCHAR *pextens, TCHAR *pfile) { TCHAR *c; SYSTEMTIME datesys; GetSystemTime(&datesys); wcscat(test,p_Type);
_ultow(datesys.wDay, pfile, 10); c = pfile; while(*c) c++; // AU BOUT, EVITERA LES CONCAT _ultow(datesys.wMonth, c, 10); while(*c) c++; // ENCORE AU BOUT _ultow(datesys.wYear, c, 10); while(*c) c++; // ENCORE AU BOUT _ultow(datesys.wHour, c,10); while(*c) c++; // ENCORE AU BOUT _ultow(datesys.wMinute, c, 10); while(*c) c++; // ENCORE AU BOUT _ultow(datesys.wSecond, c, 10); wcscat(c, pextens); }
TCHAR NomFichier[30];
on appelle: GenNom(_TEXT(".txt"), NomFichier); et NomFichier sera rempli.
ciao... BruNews, MVP VC++
|
|
|
jeudi 28 juillet 2005 à 14:31:49 |
Re : Recuperation date system UNICODE

raton
|
 Heuuu... Ca marche... Je sais pas comment... J'ai suis pas vraiment sur d'avoir compris le while(*c) c++; // ENCORE AU BOUT C'estr koi le principe. Ca fait defiler la chaine jusque tomber sur un caractere vide (ou le pointeur retournera null) ? En tout cas merci...
Mess with the best Die Like the rest
|
|
|
jeudi 28 juillet 2005 à 14:35:15 |
Re : Recuperation date system UNICODE

BruNews
|
concat va chercher fin de chaine (1er valeur NULL), on ne refera donc pas tous ces parcours à chaque fois donc on pousse un pointeur sur fin de chaine et on écrit à son adresse. Rien de sorcier.
ciao... BruNews, MVP VC++
|
|
|
Cette discussion est classé dans : date, probleme, chaine, unicode, datesys
Répondre à ce message
Sujets en rapport avec ce message
conversion de date [ par CHENRY ]
En VC++ 6.0 avec les MFC.Pour convertir une date en chaine, j'ai bien trouvé la propriété MaChaine = MaDate.Format(0, LANG_USER_DEFAULT)mais pour conv
fonction qui retourne un char [ par glipper ]
Bonjour,Voila, j'ai un probleme avec une fonction qui doit retourner une chaine de caractere ! J'ai compris qu'elle ne pouvait pas renvoyer la chaine,
Probleme de lecture d'un fichier x [ par Lavieillefolle ]
Salut, j'aimerais savoir pourquoi, lorsque je tente de lire un fichier, avec ce code, je n'obtient qu'une boucle infinie?Code :#include #include main(
probleme entre chaine et tableau [ par Elkaire ]
salut a tous, je debute en C et je me retrouve confrontéau probleme suivant : dans une mon application cllient serveur mon client envoie des trames so
date systeme [ par bibifinal ]
bonjour, j'ai declaré 2 variables SystemTime XoST; TFileTime XoFT;mais, pour faire ce que je veu je doit convertir une cha
probleme de liste chaine [ par cutibipoulet ]
voila, ge débute en cpp et iles problèmes commences quand je fait une simple liste doublement chainé. JeDans cette liste, il existe undebut list_begin
Probleme Equation C++/C [ par Ombreee ]
Bonjour,Voila j'aimerai savoir si il existe une LIB ou autre qui me permetrai de resoudre une equation du premier degre a partire d'une chaine ??? Ou
ligne de commande en Unicode [ par cesquerr ]
Bonjour,j'ai un probleme avec le passage a l'unicode de certains logiciels. Lorsque je veux les ouvrir a partir d'une ligne de commande, comme j'ai de
probleme d'une chaine de caracteres [ par bilaloch ]
Bonjour a tous,J'ai un ptit probleme au niveau d'une manipulation sur une chaine de caracteres. Voici le code : std::string *position = <FONT color=#
Probleme de chaine [ par jb212121 ]
Bonjour à tous,Je suis en train de faire un petit programme en c et je souhaiterai utilisé un pointeur de caractere mais dev cpp me sort cette erreur
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|