<div dir="ltr">Hola Ali,<div class="gmail_extra"><br><div class="gmail_quote">2014/1/3 Ali Rincon <span dir="ltr"><<a href="mailto:alrincon1963@hotmail.com" target="_blank">alrincon1963@hotmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>Gracias nuevamente, Steven, por tu ayuda y orientación. Mira, realmente tienes razón con respecto a los indices, y concluyo que mi algoritmo no sirve para lo que pretendo. Me explico: Inicialmente el código funciona si pedimos eliminar las filas donde aparezca el numero 1 (tomado como ejemplo) de la matriz del fichero origen escrita como:<br>

<div class="im"><br></div></blockquote><div><br></div><div>[CORTE]</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im"></div>el código no funciona. Y no funciona por la razón que tu dices. Al llegar a la ultima fila k=9, el programa no encuentra la fila k+1. Por esta razón lo que escribí no me sirve. Tu idea de almacenar las filas que me interesan eliminar (dado el valor por teclado) me parece muy buena. Yo había separado la tarea de búsqueda y eliminación, tal cual como a continuación te escribo:<br>
<div class="im"></div></blockquote><div><br></div><div>El problema está aquí en la eliminación de las filas:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im">    for(i=0; i<indices; i++)<br></div></blockquote><div><br></div><div>Te comenté que necesitas usar la cantidad actual de las filas y no la cantidad máxima. Escribe:<br></div><div><br></div><div><span style="color:rgb(80,0,80)">for( i=0; i<indices-contarFilas; i++ )</span><br>
</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><span style="color:rgb(34,34,34)">Honestamente, no se como copiar las filas que me interesan de una matriz dada, donde los indices se almacenan en el vector filasparaeliminar[10]. Me puedes dar una idea de como hacer esto, por favor??</span></div>
</blockquote><div><br></div><div>Podrías eliminar cada fila una a una, que es como lo tenías originalmente, pero creo que conviene mudar todas las filas en un solo recorrido.</div><div><br></div><div>Sugiero implementar el método de inserción, pero usando el mismo array como origen y destinatario. Recorre el array para buscar un hueco en el que colocar la siguiente fila (válida). Se representa el "hueco" con el índice de la fila guardado en el array, '<span style="font-size:13px;font-family:arial,sans-serif">aFilasParaEliminar'. N</span>ecesitas dos índices: uno para recorrer la matriz y otro para recorrer el array, '<span style="font-family:arial,sans-serif;font-size:13px">aFilasParaEliminar'; también necesitamos una variable para indicar el "hueco".</span> Analizando el comportamiento, podemos tratar la primera fila a eliminar y la última como casos especiales. Podemos saltarnos las primeras filas de la matriz y comenzar el algoritmo directamente con la primera fila a eliminar. Por ejemplo,</div>
<div><br></div><div>int indiceEliminar = 0;</div><div>...</div><div>hueco = <span style="font-size:13px;font-family:arial,sans-serif">aFilasParaEliminar[</span>0<span style="font-size:13px;font-family:arial,sans-serif">];  // Podría haber escrito:  </span>hueco = <span style="font-size:13px;font-family:arial,sans-serif">aFilasParaEliminar[</span>indiceEliminar<span style="font-family:arial,sans-serif;font-size:13px">], pero el resultado es el mismo</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px">for( i=hueco+1</span><span style="font-family:arial,sans-serif;font-size:13px">; i<</span><span style="font-family:arial,sans-serif;font-size:13px">aFilasParaEliminar[contarFilas-1]</span><span style="font-family:arial,sans-serif;font-size:13px">; i++ )  // La última fila: </span><span style="font-family:arial,sans-serif;font-size:13px">aFilasParaEliminar[contarFilas-1]</span></div>
<div><span style="font-size:13px;font-family:arial,sans-serif">{<br>  ...<br>}</span></div><div><br></div><div>Ahora vamos comprobando cada fila por si se elimina o no. Si no se elimina la fila, que estamos procesando, entonces la copiamos al "hueco" y aumentamos el "hueco" para la siguiente comprobación. Si tal fila sí se elimina, entonces la ignoramos: no se copia, y aumentamos 'indiceEliminar' para indicar la siguiente fila a eliminar.</div>
<div><br></div><div>Para el caso de la última fila a eliminar, no hace falta comprobar las filas restantes, porque ya no hay más filas a eliminar. Por lo tanto, sólo nos queda mudar esas filas restantes. Podemos hacer esto en otro bucle después del bucle general anterior. Visto de otra manera, tenemos este esquema:<br>
<br>// Caso general: copia condicionada</div><div>for( ... )</div><div>{<br>  if( fila a eliminar )<br>  {<br>    ...<br>  }</div><div>  else  // fila a copiar</div><div>  {<br>    ...<br>  }</div><div>}</div><div><br></div>
<div>// Caso especial: copia directa/regular</div><div>for( ... )</div><div>{<br>  // Copia las demás filas<br>  ...<br>}</div><div><br></div><div><br></div><div>Espero que todo esto te sirva.</div><div><br></div><div>Steven</div>
<div><br></div></div></div></div>