Errores, fallos, preguntas - página 898

 

lazarev-d-m:

Yedelkin:

sergeev: ¿el archivo tiene líneas?

FILE_LINE_END

Obtener indicación de fin delínea

Más o menos lo he resuelto, el terminal ve el archivo csv no como una tabla, sino como un archivo habitual donde todas las variables están alineadas y separadas por un delimitador, y para orientarse en él como en una tabla, he escrito un pequeño script de ejemplo para trabajar con el csv como con una tabla, por muy extraño que suene, hoy / mañana le echaré mano a CodeBase, creo que a muchos les interesará

lazarev-d-m, mi mensaje no es para ti. Es para Sergeyev personalmente.
 
Yedelkin:

FILE_LINE_END

Obtener el indicador de fin delínea

No te estoy diciendo nada, ya eres inteligente.

y entiende que el archivo tiene caracteres de control en su mapeo de líneas. para que algunos visores de su contenido lo muestren de acuerdo a las reglas generalmente aceptadas.

Управляющие символы — Википедия
  • ru.wikipedia.org
Управля́ющие си́мволы — элементы данной кодировки, которым не приписано графическое представление, но которые используются для управления устройствами, организации передачи данных и других целей. Сейчас для этих целей применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы. Поэтому многие...
 
lazarev-d-m:

Más o menos lo he resuelto, el terminal no ve el archivo csv como una tabla, sino como un archivo normal donde todas las variables están alineadas y separadas por un separador

No sólo ve el csv así, ve todo como un archivo.
 

lazarev-d-m:

hay que idear un mecanismo de búsqueda de cadenas,

¿el archivo tiene líneas? ¿cómo se marca una nueva línea? (insinuando un símbolo especial :)

Imagina que el archivo es una matriz unidimensional de caracteres.

¿cómo se encuentra una "nueva línea" en la matriz?

 

 

FILE_LINE_END

Obtener el carácter de fin de línea

sergeev: No te voy a decir nada. ya eres lo suficientemente inteligente. entiendes que un archivo tiene caracteres de control en su representación lineal. para que algunos visores muestren su contenido según las reglas aceptadas.
:) Supongamos que tienes las respuestas a las preguntas "¿qué es una nueva línea en un archivo? ¿un archivo tiene líneas?" Los tienes. La respuesta no se esperaba de ti.
 
Yedelkin:
:) Supongamos que las respuestas a las preguntas "¿Qué es una nueva línea en el archivo? Lo tienes. Se supone que no debes obtener una respuesta.

se trata de los conceptos utilizados y de la percepción de esos conceptos.

¿Qué es una"nueva línea" en el archivo? Esto es lo que estoy tratando de averiguar de lazarev-d-m. Si espero una respuesta, voy a corregir y explicar el concepto correctamente, si es necesario. Y luego me dirigiré a la solución del problema.

Y aunque no sé lo que lazarev-d-m imagina cuando pregunta por una "nueva línea", no puedo dar una respuesta de cómo encontrarla. Conoce FileSeek y FileIsLineEnding y FileRead. Pero no parece saber para qué sirven.

Está claro que en su caso se puede encontrar algún carácter sólo buscando, pero si entiende que la nueva cadena es sólo un carácter, no lo sé.

 
sergeevвсе дело в Estoy tratando de averiguar con lazarev-d-m qué es una"nueva cadena" en un archivo. Si espero una respuesta, corregiré y explicaré el concepto correctamente. Mientras tanto, no sé en qué está pensando lazarev-d-m cuando pregunta por una "nueva línea". Conoce FileSeek y FileIsLineEnding y FileRead. Pero parece que no sabe para qué sirven, está claro que en su caso sólo se puede encontrar algún personaje buscando.

La cuestión esque este foro es un foro para la comunidad MQL5. Y MQL5 implica una noción como "signo de fin de línea del archivo":

FILE_LINE_END.

Obtención de las banderas de fin de línea

Por lo tanto, la pregunta del Sr. Lazarev es absolutamente correcta. Es absolutamente correcto dentro de la comunidad MQL5.

 
Yedelkin:

La cuestión esque este foro es un foro para la comunidad MQL5. Y el lenguaje MQL5 implica tal noción como "signo de fin de línea en un archivo":

Pregunta: dime qué números se dividen por dos.

La respuesta es toda.

Moraleja - no confundir el fin y lo que necesita lazarev-d-m

 
sergeev: Pregunta - dime, ¿qué números son divisibles por dos? La respuesta es toda. Moraleja - no confundir el final con el derecho lazarev-d-m
Sí. La respuesta a tu pregunta "¿Un archivo tiene cadenas?" Ya lo tienes. Ahora compara el final y lo que necesita Lazarev. :)
 
sergeev:

Pregunta - ¿Puedes decirme qué números son divisibles por dos?

La respuesta es toda.

Moraleja - no confundir el fin y lo que necesita lazarev-d-m

Entiendo que hay formas de identificar una sola línea, pero no hay un comando separado para acceder a ella, hay que recalcular el número de caracteres de los separadores de línea, para llegar a la cadena correcta (si se conoce el "número" de líneas).

O mi variante de escanear el archivo línea por línea, que también es muy útil, especialmente con archivos grandes, donde puede haber cientos de líneas, y si de repente se encuentran con esto en el probador, entonces generalmente horrible.

Así es como lo hice, no funciona bien, lo arreglaré cuando esté libre

MqlDateTime mqldt;
string qwerty="EURUSD";
int filehandle;

void OnStart()
  {
   filehandle=FileOpen("News.csv",FILE_READ|FILE_CSV|FILE_ANSI,';');
   uint column1=FileReadInteger(filehandle);//Code
   string column2=FileReadString(filehandle);//Symbol
   uint column3=FileReadInteger(filehandle);//Year
   uint column4=FileReadInteger(filehandle);//Month
   uint column5=FileReadInteger(filehandle);//Day
   uint column6=FileReadInteger(filehandle);//Hour
   uint column7=FileReadInteger(filehandle);//Minute
   while(column2!=qwerty&&column3!=mqldt.year&&column4!=mqldt.mon&&column5!=mqldt.day&&column6!=mqldt.hour)
     {
   column1=FileReadString(filehandle);//Code
   column2=FileReadString(filehandle);//Symbol
   column3=FileReadInteger(filehandle);//Year
   column4=FileReadInteger(filehandle);//Month
   column5=FileReadInteger(filehandle);//Day
   column6=FileReadInteger(filehandle);//Hour
   column7=FileReadInteger(filehandle);//Minute
     }
   Alert("Искомое находится в ",column1,"-й строчке");
  }
Ahora siempre devuelve la columna1=Código, mientras que debería devolver el número de la línea, que coincide con la hora actual, creo que está claro en el código