| / | Форум |
|
OniNePriletyat
29.06.2006 23:05
В документации читаю - после записи в файл добавляется признак
конца строки "\r\n". Открывал csv файл с помощью "эксель",
"блокнот", промывал глаза, полоскал горло, а "\r\n" так
и не увидел. Может не там смотрел?
|
|
Бесплатная Groupware для групп разработчиков Установите систему групповой работы TeamWox и объедините усилия всех разработчиков. Это поможет вашей команде работать быстрее и организованнее. Благодаря TeamWox станет намного проще ставить задачи и контролировать их выполнение. |
|
mandor
30.06.2006 02:17
Браво. Классический участник форума MQL4 ....
Впрочем, кодам символов в документации уделено мало внимания. В MQL4 некоторые символы имеют специальное обозначение как в языке C. "\r" и "\n" - это служебные символы и не отображаются тексторыми редакторами, а служат для форматирования текста. "\r" это символ длиной 1 байт с кодом 13 или \x0d. "\n" это символ длиной 1 байт с кодом 10 или \x0a. Функция форматирования текста: "\r" - возврат каретки (печатной машинки). "\n" - перевод строки (печатной машинки). |
|
OniNePriletyat
30.06.2006 10:11
1. Тоесть, если у меня в строке 10 символов включая пробелы, то
чтобы переместить файловый указатель в начало следующей строки,
его нужно передвинуть на 12 байт (10 видимых + 2 невидимых). Правильно? |
|
Itso
01.07.2006 14:10
Когда читаеш 1 строка, MQL считывает всех символов, пока найдет
загадочные \r\n. Так он понимает, что дошел до конца строки. Вот
и все. |
|
OniNePriletyat
03.07.2006 23:02
1. И все таки так и не понял как перемещать файловый указатель.
Допустим у меня в csv файле в каждой строке записано по 2 значения
с разделителем. Чтобы переместить файловый указатель в начало
четвертой строки мне нужно в цикле 6 раз прочитать число ф-ией
. Правильно?
for(x=1; x<=6; x++) { FileReadNumber(handle); }2. И второй вопрос. Почему в этом эксперте ф-ия FileWrite не записывает буквы в файл? Когда убираю цикл буквы записываются. int start() { static int i; int x, handle; if(i<1) { handle=FileOpen("files1.csv",FILE_CSV|FILE_WRITE|FILE_READ,';'); FileSeek(handle,0,SEEK_SET); for(x=1; x<=6; x++) { FileReadNumber(handle); } FileWrite(handle,"ABCD"); FileClose(handle); i++; } } |
|
OniNePriletyat
17.09.2006 01:28
int start() { int Handle1, Handle2; string A, B; Handle1=FileOpen(Symbol()+".csv",FILE_CSV|FILE_READ,';'); Handle2=FileOpen(Symbol()+"new"+".csv",FILE_CSV|FILE_WRITE|FILE_READ,';'); FileSeek(Handle1,0,SEEK_SET); FileSeek(Handle2,0,SEEK_SET); while(true) { if(FileIsEnding(Handle1)) break; A=FileReadString(Handle1); if(A=="--------------------------Connection lost " || A=="--------------------------Expert was stoped") continue; B=FileReadString(Handle1); FileWrite(Handle2,A,B); continue; } FileClose(Handle1); FileClose(Handle2); return(0); }Скрипт должен переписывать данные из одного csv файла, в другой, удаляя некоторые строки. В конце нового файла появляется ";" - где ошибка? Файл открывал через "блокнот". файл 1: ![]() файл 2:
|
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий