bue, antes que nada vale la pena aclarar que busque en google el foro mismo y o no encontre lo que buscaba o no lo supe entender, por eso posteo esto aqui.
cuando arme esto en mi cabeza sonaba mas facil o no tan complicado almenos.
archivo.rc
STRINGTABLE DISCARDABLE
BEGIN
201 "a01|a02|a03|a04"
202 "b01|b02|b03|b04"
203 "c01|c02|c03|c04"
204 "d01|d02|d03|d04"
205 "e01|e02|e03|e04"
206 "f01|f02|f03|f04"
207 "g01|g02|g03|g04"
END
necesito cargar esos valores de StringTable en un ListView, lo que estoy tratando de hacer y no me sale es lo siguiente:
#include <windows.h>
void Split(char *str){
TCHAR STRING[350];
char * pch;
char * pch2;
pch = strtok(str, ",");
while(pch!=NULL){
LoadString(NULL, atoi(pch), STRING, sizeof(STRING));
pch2 = strtok(STRING, "|");
while(pch2!=NULL){
OutputDebugString((LPCTSTR) pch2);
pch2 = strtok(NULL, "|");
}
pch = strtok(NULL, ",");
}
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow){
Split("201,202,203,204,205,206,207");
return 0;
}
osea asi es como se me ocurrio hacerlo a mi, pero aparentemente eso esta mal, y no se realmente como hacer parahacer el split para recorrer todo los valores....
PD: estoy trabajano en VC++ 6.0, Not using MFC
Te dejo un ejemplo:
#include <stdio.h>
#include <string.h>
char txt[] = "201 a01|a02|a03|a04";
int main(void)
{
char *trozo = strtok(txt, "|");
while(trozo != NULL)
{
printf("Valor : %s\n", trozo);
trozo = strtok(NULL, "|");
}
return 0;
}
mmmmmmmm. me perdi, osea lo que necesito es hacer un strtok dentro de otro, el primero me da el id que uso para cargar con LoadString el stringtable X y a ese stringtable X hacer otro strtok para parsear los "|".
el string de Split() cambia.
Split("201,202,203,204,205,206,207");
//Split("301,302,303,304,305,306,307");
//Split("401,402,403,404,405,406,407");
// ....
}
creo que encontre un articulo donde muestra como hacer lo que yo estababuscando como hacer, aqui dejo el link por si a alguien le interesa o.....
Link: Simple string parsing in nested loops (http://www.codeproject.com/KB/string/StrTok.aspx) (codeproject)
PD: si alguien sabe de alguna forma mas simple de hacer eso, avise, toda sugerencia siempre es bienvenida.