En modo secuencial, con garantía de éxito y sin complicaciones añadidas, solamente se puede realizar como dices en tu pregunta, salvo que todas las filas tengan la misma longitud y te aventures a leerlo en modo de registros aleatorios. En este caso has de tener en cuenta que cada línea de un TXT, mide su longitud, más 2 bytes de los caracteres CR(Carriage Return) y LF(Line Feed).
Otra posibilidad es que cada fila del fichero TXT disponga de un número aproximado de caracteres, y la información contenida te permita identificar un dato concreto. En este caso te puedes aventurar a leer en modo binario la porción de fichero en la que 'supuestamente' se encuentre la información, con un márgen de libertad expresado en bytes que te garantice que has procesado un byte-stream que contiene el dato. Haces un split(cadenaleida, vbcrlf) y tendrás un array que contendrá -en alguno de sus índices- el dato deseado.
Las modificaciones en este caso no deben alterar la longitud de la cadena, de otra forma alteras su organización inicial.
Por último, siempre que el fichero no sea excesivamente grande, puedes cargarlo en forma binaria sobre una variable tipo String, hacer un split...modificar el dato en el índice del array que corresponda, volver a generar el byte-stream de salida y actualizar nuevamente en bloque (binario).
Bueno, no se me ocurre nada más...perdona la extensión de la respuesta. |