Qt en Español

Qt en Español es una comunidad de usuarios para aprender a Programar usando las librerias Qt

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Últimos temas
» Desaparecen objetos del formulario al usar showMaximized()
Sáb Sep 13, 2014 9:54 pm por ljimenez29

» visivilidad de controles
Dom Mayo 18, 2014 5:04 pm por solitarywolf

» Error QT (y no sé que más poner ¬¬)
Jue Sep 26, 2013 4:02 pm por Anónimo

» QT, VTK en VS 2008 C++
Jue Abr 11, 2013 5:19 pm por monicadiaz

» [Ayuda]Programa en PyQt4 en modo Pantalla completa
Sáb Mar 30, 2013 8:56 pm por fortil

» SIGNAL y SLOT
Sáb Mar 02, 2013 5:11 pm por loloqt

» Qt creator 5.0.1 en Windows 8...."Qt creator needs a compiler set up to build. Configure a compiler in the kit options"
Miér Feb 27, 2013 4:23 pm por caliche

» mi aplicacion no me lee la base de datos
Jue Oct 18, 2012 1:55 pm por jldiaz

» QT.Para G19 de Logitech
Dom Oct 14, 2012 3:00 am por novax1

Navegación
 Portal
 Índice
 Miembros
 Perfil
 FAQ
 Buscar
Compañeros
Crear foro
Sondeo

Que nombre te gustaria que se llamara el foro?

27% 27% [ 6 ]
18% 18% [ 4 ]
0% 0% [ 0 ]
55% 55% [ 12 ]

Votos Totales : 22


No estás conectado. Conéctate o registrate

Problemas Eliminar el ultimo elemento de una lista QSTringList

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

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.

***************************************
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()

****************************************

Ver perfil de usuario

2 Zona Qt el Sáb Mar 10, 2012 5:14 pm

este foro ya no se esta usando, para todas tus dudas acerca de la programacion en Qt, visita el este foro:

http://www.zonaqt.com/

Ver perfil de usuario http://qt-espanol.forosactivos.net

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.