Escribir en el archivo en una nueva línea - página 2

 
EfremovSergey:
¿Cómo se puede borrar una cadena después de leerla, hay alguna forma sencilla de hacerlo?

¿Leído por quién? Si por usted, puede borrarlo con sus manos. Si lo hace un robot, no tiene sentido. Puede tomar una decisión sobre el algoritmo tan pronto como reciba los datos.

 
Valeriy Yastremskiy:

¿Leído por quién? Si por usted, puede borrarlo con sus manos. Si lo hace un robot, no tiene sentido. Puede tomar una decisión sobre el algoritmo tan pronto como reciba los datos.

En mi opinión, si no te deshaces de la información ya procesada, tienes que gastar recursos en volver a analizarla.

 
Ihor Herasko:

En la mayoría de los casos, es mejor leer todo el archivo, hacer los cambios necesarios en la memoria con los datos y luego sobrescribir todo el archivo. Esto es más fácil que mover los datos dentro de un archivo abierto.

Si un EA está leyendo un archivo en su totalidad, ¿puede otro EA acceder al mismo archivo al mismo tiempo que el primero para realizar sus propias acciones?

Para experimentar, abrí el archivo manualmente e intenté escribir el Asesor Experto en él; la información se mostró sólo después de reabrirlo.

Si intento abrir el archivo manualmente, mientras el Asesor Experto está trabajando en el archivo, simplemente se niega a abrirlo, porque el archivo está demasiado ocupado con el proceso.

No comprendo del todo el reglamento. ¿No funcionará que en caso de sobrescritura total se borre todo lo que aún no se ha leído?

Otro detalle es que el archivo es accedido por diferentes Asesores Expertos y no saben si otros Asesores Expertos ya han leído la información relevante para ellos o no, por lo que se puede purgar todo el archivo.

 
EfremovSergey:

Si un EA está leyendo un archivo en su totalidad, ¿puede otro EA acceder al mismo archivo al mismo tiempo que el primero para realizar sus propias acciones?

Para experimentar, abrí el archivo manualmente e intenté escribir el Asesor Experto en él; la información se mostró sólo después de reabrir el archivo.

Si intento abrir el archivo manualmente, mientras el Asesor Experto está trabajando en el archivo, simplemente se niega a abrirlo, porque el archivo está demasiado ocupado con el proceso.

No comprendo del todo el reglamento. ¿No ocurrirá que en caso de sobrescritura total, se borre también todo lo que aún no se ha leído?

Al abrir el archivo, añada la bandera de co-lectura FILE_SHARE_READ, tal vez necesite también la bandera de co-edición {write}. Tú decides si es necesario.

 
Alexey Viktorov:

Al abrir un archivo, añadir la bandera de co-lectura FILE_SHARE_READ, posiblemente también la bandera de co-edición/escritura. Tú decides si es necesario.

Bien. Muchas gracias. Información útil.

¿Y cómo borrar una sola línea, alguien puede sugerirlo?

 
EfremovSergey:

De acuerdo. Muchas gracias. Información útil.

¿Alguien puede sugerir cómo eliminar una sola línea?

Depende de la línea. No lo he hecho, pero si tengo que hacerlo, empezaré por experimentar por mi cuenta. ¿Quién quiere experimentar con las ideas de los demás? Excepto por la ociosidad. Mira si es posible leer tu archivo en la base de datos SQLite, borrar esta cadena y escribirla de nuevo. Si se puede escribir en un array o en un array de estructuras, también se puede hacer. Pero el problema es que las matrices y las estructuras están escritas en archivos .bin, que nada más no se abren y miran. En general, la fuga de la fantasía y la experimentación para tratar de lograr un resultado.

 
Alexey Viktorov:

Depende del tipo de cuerda. No lo he hecho, pero si tengo que hacerlo, empezaré por experimentar por mi cuenta. ¿Quién quiere experimentar con las ideas de los demás? Excepto por la ociosidad. Mira si es posible leer tu archivo en la base de datos SQLite, borrar esta cadena y escribirla de nuevo. Si se puede escribir en un array o en un array de estructuras, también se puede hacer. Pero el problema es que las matrices y las estructuras están escritas en archivos .bin, que nada más no se abren y miran. En definitiva, se trata de una huida hacia adelante y de experimentos para intentar obtener un resultado.

Un archivo de texto ordinario... Si no se sabe cómo hacerlo, la cuestión desaparece por sí sola, todo el mundo experimenta con ella. El concepto está en la superficie, como se dice, y no requiere ninguna voz en off adicional.

 
EfremovSergey:

¿Alguien puede sugerir cómo eliminar una sola línea?

La forma más fácil es leer el archivo, procesar los datos y escribirlos de nuevo. Editar directamente los datos del archivo sin hacer demasiadas preguntas sólo es posible carácter por carácter: leer símbolo - escribir en el lugar de la información a borrar. La sobrescritura en bloques es más difícil, ya que los distintos datos pueden solaparse. Por lo tanto, todo esto es complicado y no está muy claro por qué es necesario. ¿Realmente no hay tanta RAM? Pero entonces tampoco será posible el funcionamiento de un gran número de programas.

 
EfremovSergey:

Un archivo de texto plano... Si no se sabe cómo hacerlo, la cuestión desaparece por sí sola, cada uno experimenta como puede, lo que sabe hacer. El concepto está en la superficie, como se dice, y no requiere ninguna voz en off adicional.

Bueno, si usted piensa que la información "archivo de texto normal ..." es suficiente, entonces usted acaba de telépatas. No sé la dirección, puedes encontrarla tú mismo. Por alguna razón no se tiene en cuenta que incluso los archivos de texto son diferentes. Hay un terminador de línea, qué hay en el archivo: números o texto, y puede haber otros matices.

Igor te ofreció el camino más fácil. Probablemente no te haya gustado, así que te sugerí que experimentaras. Y el concepto es sólo para ti en la superficie.........

 
Ihor Herasko:

La forma más sencilla es leer el archivo, procesar los datos y escribirlos de nuevo. Editar directamente los datos del archivo sin hacer demasiadas preguntas sólo es posible carácter por carácter: leer un carácter y escribirlo en lugar de la información que se desea borrar. La sobrescritura en bloques es más difícil, ya que los distintos datos pueden solaparse. Por lo tanto, todo esto es complicado y no está muy claro por qué es necesario. ¿Realmente no hay tanta memoria principal? Pero entonces tampoco sería posible el funcionamiento de un gran número de programas.

Aquí está el truco: hay 10 programas que escriben en el archivo y otros 10 que leen de él, no quieres que cada programa de lectura procese todo el conjunto de datos acumulados durante todo el tiempo.

Archivos adjuntos:
Copy.txt  1 kb
Razón de la queja: