czytanie plików z innego katalogu niż dozwolone w MT4

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

czytanie plików z innego katalogu niż dozwolone w MT4

Nieprzeczytany post autor: NiceFox »

Czy może ma ktoś propozycje na czytanie plików z katalogów innych niż MT4?
Pieniądze rosną na drzewie cierpliwości.

vindemiatrix
Gaduła
Gaduła
Posty: 100
Rejestracja: 22 kwie 2009, 12:12

Nieprzeczytany post autor: vindemiatrix »

Wszystkie działania na plikach mogą odbywać się tylko w katalogu

.\experts\files\

lub jego podkatalogach
.\podkatalog "plik.txt"

innej możliwości nie ma

Awatar użytkownika
Cyb
Przyjaciel Forum
Przyjaciel Forum
Posty: 1907
Rejestracja: 25 mar 2009, 20:41

Nieprzeczytany post autor: Cyb »

A co gdyby utworzyć symlink do pliku z innej lokalizacji ? Nie przeszłoby ? Skoro da się w ten sposób oszukać całe mt4 że odpalane jest z innej lokalizacji, to powinno dać się oszukać w drugą stronę...

Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

Nieprzeczytany post autor: NiceFox »

możesz coś więcej na ten temat napisać, jakich programów używasz do tego, FXSPYDER?
Pieniądze rosną na drzewie cierpliwości.

vindemiatrix
Gaduła
Gaduła
Posty: 100
Rejestracja: 22 kwie 2009, 12:12

Nieprzeczytany post autor: vindemiatrix »

Nie wiem ale to nie warte wyprawki IMHO.

Zresztą to i tak dotyczy systemów unixowych lub visty a z poziomu MT4 i tak brak będzie możliwości np. tworzenia takich dowiązań
Wszystko na własną prśbę

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

A jak podasz pełną ścieżkę do się nie da?

Typu:
c:\adasd\dsgsrg\ere\fsef23r.txt
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

Nieprzeczytany post autor: NiceFox »

Tak łatwo to się nie da, trzeba pokombinować np. kernel32.dll czy ktoś zastosował to rozwiązanie?
Pieniądze rosną na drzewie cierpliwości.

pulsefx
Bywalec
Bywalec
Posty: 13
Rejestracja: 22 sie 2009, 22:32

Nieprzeczytany post autor: pulsefx »

Nie wiem jaki masz system , na moim WIndows 7 jest taka komenda mklink

Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link
refers to.


można za jej pomocą utworzyć dowiązanie symboliczne do folderu.
Sprawdziłem i u mnie działa.

Wykonałem taką komendę aby utworzyć dowiązanie symboliczne do folderu experts.

C:\Program Files (x86)\_FxPro - MetaTrader>mklink /D experts "C:\Program Files (x86)\_MetaTrader Admiral Markets AS\experts"

Wcześniej musiałem uruchomić cmd.exe na prawach administratora "C:\windows\system32.cmd.exe" prawy klik i - uruchom jako administrator.

Oczywiście musisz zmienić nazwy folderów MT4 na właściwe.

Wiem że na windows XP też jest jakieś narzędzie do robienia linków symbolicznych, można ściągnąć je z sieci, kiedyś miałem cos takiego, po googluj to na pewno coś znajdziesz.


Pozdrawiam

Godot
Stały bywalec
Stały bywalec
Posty: 32
Rejestracja: 09 kwie 2008, 17:46

Nieprzeczytany post autor: Godot »

... a może tak

Kod: Zaznacz cały

//+------------------------------------------------------------------+
//|                                                  ReadFileMQL.mq4 |
//|                                       Copyright by Godot © 2009. |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright by Godot © 2009."
#property link      ""



#import "kernel32.dll"
    int _lclose (int);
    int _lopen  (string,int);
    int _llseek (int,int,int);
    int _lread  (int,string,int);
    int GetFileSize(int,int);
#import


//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   double size = 0;
   string byte = " ";
   string outputstr = "";
   int handle = _lopen("C:\\moj_plik.txt",0);//W ścieżce używaj podwójnego slasha, tak jak tutaj.
   size = GetFileSize(handle,0);
   for(int i=0; i<size; i++)
   {
      _llseek(handle,i,0);    
      _lread (handle,byte,1);
      outputstr = StringConcatenate(outputstr,byte);
   }
   _lclose(handle);
   MessageBox(outputstr);
//----
   return(0);
  }
//+------------------------------------------------------------------+
Nie sądzę, by ktokolwiek był na tyle mądry, aby ocenić, co jest możliwe, a co nie.

Awatar użytkownika
NiceFox
Pasjonat
Pasjonat
Posty: 454
Rejestracja: 05 lis 2009, 13:22

Nieprzeczytany post autor: NiceFox »

Mój system : Win Server 2003
Pieniądze rosną na drzewie cierpliwości.

ODPOWIEDZ