помогите с форматирванием текста в MQL - страница 2

 
dimeon:
вот тут то и проблема, Индекс знака табуляции нашел, получить файл с переводом каретки - не получается.
Windows, в отличие от Unix-систем, использует два байте для перехода на новую строку.
CR + LF (ASCII 0x0D 0x0A )
 
rensbit:
Windows, в отличие от Unix-систем, использует два байте для перехода на новую строку.
CR + LF (ASCII 0x0D 0x0A )

а каr это выглядит в MQL ?
 
jartmailru:
Массив - сделаете чтобы компилилось,
String arr[2000][20]
я ставлю строк очень много- чтобы не изменять размер массива
столбцов- сколько надо.
.
Дальше константы - осмысленные названия столбцов
int Дата = 0;
int Цена = 1;
int Стохастик = 2;
.
arr[текущаяСтрока][Дата] = TimeToStr(что то там);
еще заполняем столбцы
текущаяСтрока++;
.
Подробнее расписывать лень.
.
Потом каждую строку суммировать и писать в файл.


я же не говорю, что пишу эти данные, есть уже текстовая строка вида а=1 с=3 м=20 и т.д. (разделитель Tab). Как эту строку загнать в массив ?

Можно конечно каждый символ загнать в массив, а знак табулятора пропускать и ставить символ перевода каретки, но это как-то слишком заумно.

 
dimeon:

а каr это выглядит в MQL ?

так и будет выглядеть: CharToStr(13)+CharToStr(10);

Проще, по-моему, прочитать файл как "файл с разделителями" и затем переписать его как бинарный:

  int j;
  int ch='\x09';                                
  string ret=CharToStr(13)+CharToStr(10); 
  string str[2000];
  int i=0;
  
  int handle1=FileOpen("111.txt", FILE_CSV|FILE_READ,ch); 
  
  while (!FileIsEnding(handle1))
  {
   i=i+1;
   str[i]=FileReadString(handle1);
   str[i]=str[i]+ret;  
  }
  FileClose(handle1);
  int handle2=FileOpen("111.txt", FILE_BIN|FILE_WRITE);  
  for (j=1;j<=i;j++)
  {
    FileWriteString(handle2, str[j],StringLen(str[j]));  
  }  
  
  FileClose(handle2);
 
А заменять '\t' на '\n' не канает?
Причина обращения: