Hola a todos:
Como siempre recurro a los expertos. Llevo poco tiempo programando en Qt4 y todavia tengo que revisar mucha documentacion para poder avanzar en mis proyectos, pero bueno eso me imagino que nos pasara a todos.
Tengo un problema que no consigo resolver.
Tengo una lista del tipo 01000000000,02000000000,03000000000 de este tipo definida con QStringList.
El problema que tengo es que no consigo eliminar el ultimo elemento de la lista 03000000000 . Si que he conseguido eliminar el primero y el segundo pero no el ulitmo. Requiero de vuestros conocimientos para ver si me podeis aportar alguna solucion, pq llevo dos dias parado con esta tonteria, lo se soy un torpe.
Os dejo parte del codigo para ver si me podeis echar una mano.
Lo que hago es primero averiguar el total de elementos de la lista.
Localizo el elemento que me interesa borrar y que empieza por 02.
Borro el elemento .
He probado a borrar el elemento con removeat(), con removelast, pero si es el ulitmo elemento no consigo borrarlo.
Os dejo la parte de codigo y muchas gracias por vuestra ayuda.
***************************************
****************************************
Como siempre recurro a los expertos. Llevo poco tiempo programando en Qt4 y todavia tengo que revisar mucha documentacion para poder avanzar en mis proyectos, pero bueno eso me imagino que nos pasara a todos.
Tengo un problema que no consigo resolver.
Tengo una lista del tipo 01000000000,02000000000,03000000000 de este tipo definida con QStringList.
El problema que tengo es que no consigo eliminar el ultimo elemento de la lista 03000000000 . Si que he conseguido eliminar el primero y el segundo pero no el ulitmo. Requiero de vuestros conocimientos para ver si me podeis aportar alguna solucion, pq llevo dos dias parado con esta tonteria, lo se soy un torpe.
Os dejo parte del codigo para ver si me podeis echar una mano.
Lo que hago es primero averiguar el total de elementos de la lista.
Localizo el elemento que me interesa borrar y que empieza por 02.
Borro el elemento .
He probado a borrar el elemento con removeat(), con removelast, pero si es el ulitmo elemento no consigo borrarlo.
Os dejo la parte de codigo y muchas gracias por vuestra ayuda.
***************************************
- Código:
#define REGPATH_XXXXXXXX "HKEY_LOCAL_MACHINE\\SOFTWARE\\XXXXX"
int TotalListaN;
QStringList listOODelN;
int PosicionOODelN=0;
int IndiceOODelN=0;
QString MostrarMensaje ="";
QString sAplicacionesOODelN = settings::getRegAppInstaladas();
int TotalElementosListaN = 0;
int ntN=0;
int IndiceOON2=0;
int PosicionOON2=0;
QSettings settings(REGPATH_XXXXXXXX,QSettings::NativeFormat);
// listOODelN.sort();
if(sAplicacionesOODelN.size() > 0)
{
listOODelN = sAplicacionesOODelN.split(",");
}
QStringList::const_iterator constIteratorOODelN;
//Vamos a averiguar donde esta la cadena 02000 en la lista
for (constIteratorOODelN = listOODelN.constBegin(); constIteratorOODelN != listOODelN.constEnd(); ++constIteratorOODelN){
TotalElementosListaN=ntN;
}
int vListCount;
vListCount = listOODelN.count();
int i;
bool encontrado(false);
int PosicionLista=-1;
QMessageBox::information ( 0,"TOTAL ELEMENTOS LISTA", "El numero total de elementos en la lista es: "+QString::number(vListCount));
for (i=0; i
{
QMessageBox::information(0,"Contenido Lista i ", listOODelN[i],"Ok",0,0,0);
QMessageBox::information ( 0,"Posicion Elemento", "La posicion en la lista es: "+QString::number(i));
if (listOODelN[i].startsWith("02")){
PosicionOON2=i;
encontrado=true;
QMessageBox::information(0,"Encontrado Valor en Posicion :", QString::number(i));
PosicionLista=i;
}
}
int vListCountReal=vListCount-1;
foreach (QString str, listOODelN) {
//if (str.startsWith("02")){QMessageBox::information(0,"String Parser", listOODelN[i],"Ok",0,0,0);
//QMessageBox::information(0,"VALORES A MOSTRAR:","Valor encontrado",QString::bool(encontrado));
QMessageBox::information(0,"Total Valores Lista vlistcount :", QString::number(vListCount));
QMessageBox::information(0,"Posicion en la lista PosicionLista:", QString::number(PosicionLista));
if (str.startsWith("02") && encontrado==true){
if (PosicionLista=vListCountReal)
{
QMessageBox::information(0,"VALOR ENCONTRADO ","ENCONTRADO OK");
QMessageBox::information(0,"valor a borrar ","Posicion Lista:", QString::number(PosicionLista), "vListCountReal:",QString::number(vListCount-1));
listOODelN.append( );
listOODelN.removeAt(PosicionLista);
}else
{
PosicionOODelN=PosicionLista;
QMessageBox::information(0,"ANTES DE BORRAR . POSICION EN LA LISTA",QString::number(PosicionOODelN));
listOODelN.removeAt(PosicionOODelN);
//QMessageBox::information(0,"DEBUG AGENTE",listOODel.at(PosicionOO));
sAplicacionesOODelN = listOODelN.join(",");
// QMessageBox::information(0,"BORRAMOS CONTENIDO LISTA",sAplicacionesOODel1);
}
}
else {
settings.setValue("Apl", sAplicacionesOODelN);
}
IndiceOODelN++;
}
}//Fin Procedimiento BorrarContenidoListaOO()
****************************************