Простое копирование файла !! - страница 2

 
Tsyrus:


Спасибо Вадим!)

Повторил как у Вас, увы ... НЕ КОПИРУЕТ!!((( ....шо делать, шо делать?)

Попробуйте последнюю версию с FTP:

ftp://zhunko_Guest:abd4vsuc@ftp.zhunko.ru/FileFunctions_20140409.zip

У меня все варианты работают.

 
Integer:

#import "kernel32.dll"
   int CopyFileA(uchar & [],uchar & [],int);
#import

void OnStart(){

   string from="c:\\1.txt"; // что копируем
   string to="c:\\2.txt"; // куда копируем
   
   uchar ufrom[];
   uchar uto[];
   
   StringToCharArray(from,ufrom);
   StringToCharArray(to,uto);

   CopyFileA(ufrom,uto,0);
   
}

Наверно, и так работать будет:

#import "kernel32.dll"
   int CopyFileW(string, string, int);
#import

void OnStart()
 {
  CopyFileW("c:\\1.txt", "c:\\2.txt", 0);
 }

Но есть недостаток. Копирует только по существующему пути.

У меня в библиотеке создаёт любой путь для копирования.

 
AlexeyVik:

Здесь почитай docs.mql4.com/ru/check/terminalinfostring

и здесь https://docs.mql4.com/ru/constants/environment_state/terminalstatus#enum_terminal_info_string



Спасибо..разобрался как делать...НО! У меня терминалы стоят не на диске "с" а на диске "d". И запускаю терминал так: D:\FX\Alpari2\terminal.exe /portable

Вот что мне пишет функция TerminalInfoString(TERMINAL_COMMONDATA_PATH) при печати :

2014.04.09 18:29:20.982 Acc EURUSD,H1: C:\Users\алекс\AppData\Roaming\MetaQuotes\Terminal\Common

Как мне изменить общую папку на "D:\FX\" ?

Может надо писать как-то так: int handle=FileOpen("D:\\FX\\Acc2.csv", FILE_COMMON|FILE_WRITE|FILE_CSV) или

int handle=FileOpen("D:\\FX\\Common\\Acc2.csv", FILE_COMMON|FILE_WRITE|FILE_CSV)

Но все равно не помогает......

Благодарю заранее.

 
Tsyrus:

Спасибо..разобрался как делать...НО! У меня терминалы стоят не на диске "с" а на диске "d". И запускаю терминал так: D:\FX\Alpari2\terminal.exe /portable

Вот что мне пишет функция TerminalInfoString(TERMINAL_COMMONDATA_PATH) при печати :

2014.04.09 18:29:20.982 Acc EURUSD,H1: C:\Users\алекс\AppData\Roaming\MetaQuotes\Terminal\Common


У меня всё то-же самое с абсолютной точностью. Не надо менять место общей папки, это запрещено разработчиками в целях безопасности. Единственная проблема может возникнуть только если диск С: SSD и его жалко часто перезаписывать. Но надо учесть, что новые диски SSD уже достаточно устойчивы и выдерживают достаточно много циклов.
 
Zhunko:

Наверно, и так работать будет:

Но есть недостаток. Копирует только по существующему пути.

У меня в библиотеке создаёт любой путь для копирования.


т.е. с "D:\\FX\\Alpari2\\MQL4\\Files\\Acc2.csv" на "D:\\FX\\Alpari1\\MQL4\\Files\\Acc2.csv" не будет копироваться?

Не подскажете как написать копирование файла SCV с одной директории в другую (директории указаны выше)?

Благодарю заранее!

 
Zhunko:

Попробуйте последнюю версию с FTP:

ftp://zhunko_Guest:abd4vsuc@ftp.zhunko.ru/PathFunctions_20140409.zip

У меня все варианты работают.


БЛАГОДАРЮ ВСЕХ за ПОМОЩЬ!!!

Все заработало!)))

#include <FileFunctions.mqh>

int start(){

FileCopyW("D:\\FX\\Alpari2\\MQL4\\Files\\Acc2.csv","D:\\FX\\Alpari1\\MQL4\\Files\\Acc2.csv");

}

 
Tsyrus:


т.е. с "D:\\FX\\Alpari2\\MQL4\\Files\\Acc2.csv" на "D:\\FX\\Alpari1\\MQL4\\Files\\Acc2.csv" не будет копироваться?

Не подскажете как написать копирование файла SCV с одной директории в другую (директории указаны выше)?

Благодарю заранее!

Для CopyFile() из WinAPI будет копироваться, если путь к папке приёмника существует.

Есть другие функции WinAPI (Shell), где есть возможность копирования в несуществующую папку. Или самому писать создание этого пути.

Tsyrus:


БЛАГОДАРЮ ВСЕХ за ПОМОЩЬ!!!

Все заработало!)))

#include <FileFunctions.mqh>

int start(){

FileCopyW("D:\\FX\\Alpari2\\MQL4\\Files\\Acc2.csv","D:\\FX\\Alpari1\\MQL4\\Files\\Acc2.csv");

}

Странно, что работает... Ошибся с файлом в ссылке. Надо было это качать:

ftp://zhunko_Guest:abd4vsuc@ftp.zhunko.ru/FileFunctions_20140409.zip

А было это:

ftp://zhunko_Guest:abd4vsuc@ftp.zhunko.ru/PathFunctions_20140409.zip

Правда, в последнем тоже есть похожая функция копирования. Но у Вас в коде инклюд из первого. Чудно!...

 
Zhunko:

Для CopyFile() из WinAPI будет копироваться, если путь к папке приёмника существует.

Есть другие функции WinAPI (Shell), где есть возможность копирования в несуществующую папку. Или самому писать создание этого пути.

Странно, что работает... Ошибся с файлом в ссылке. Надо было это качать:

ftp://zhunko_Guest:abd4vsuc@ftp.zhunko.ru/FileFunctions_20140409.zip

А было это:

ftp://zhunko_Guest:abd4vsuc@ftp.zhunko.ru/PathFunctions_20140409.zip

Правда, в последнем тоже есть похожая функция копирования. Но у Вас в коде инклюд из первого. Чудно!...


да я видел, что Вы не тот файл предложили. Я использовал FileFunctions_20140409.zip
 
Tsyrus:

да я видел, что Вы не тот файл предложили. Я использовал FileFunctions_20140409.zip
Ну, и хорошо! :-)
 
Zhunko:

...

Но есть недостаток. Копирует только по существующему пути.

...

Этот недостаток отсутствует.