Przejdź do treści
MQL5 · MetaTrader 5 · po polsku
kod odczarowany

MQL5 / Błędy

rodzina 5001–5027

Kody błędów operacji na plikach

Otwieranie, czytanie, zapisywanie i usuwanie plików oraz katalogów. Pełna lista kodów z tej rodziny wraz z tym, co je wywołuje.

1 fragment kodu z tej strony przeszedł przez kompilator MetaEditor build 6090, 2026-08-05.

Operacje plikowe w MQL5 działają w piaskownicy: program widzi wyłącznie katalog MQL5\Files swojego terminala albo katalog wspólny, gdy podasz flagę FILE_COMMON. Ścieżka bezwzględna w rodzaju C:\dane\plik.csv da 5002, i to jest najczęstszy błąd z tej rodziny.

Druga rzecz warta zapamiętania: agent testera pracuje we własnym katalogu i nie widzi twoich plików — opisaliśmy to przy agencie testera.

Pełna lista

KodStałaCo znaczy
5001ERR_TOO_MANY_FILESnie da się otworzyć więcej niż 64 plików naraz
5002ERR_WRONG_FILENAMEnieprawidłowa nazwa pliku
5003ERR_TOO_LONG_FILENAMEza długa nazwa pliku
5004ERR_CANNOT_OPEN_FILEbłąd otwierania pliku
5005ERR_FILE_CACHEBUFFER_ERRORza mało pamięci na bufor odczytu
5006ERR_CANNOT_DELETE_FILEbłąd usuwania pliku
5007ERR_INVALID_FILEHANDLEplik o tym uchwycie został zamknięty albo nigdy nie otwarty
5008ERR_WRONG_FILEHANDLEzły uchwyt pliku
5009ERR_FILE_NOTTOWRITEplik musi być otwarty do zapisu
5010ERR_FILE_NOTTOREADplik musi być otwarty do odczytu
5011ERR_FILE_NOTBINplik musi być otwarty jako binarny
5012ERR_FILE_NOTTXTplik musi być otwarty jako tekstowy
5013ERR_FILE_NOTTXTORCSVplik musi być otwarty jako tekstowy albo CSV
5014ERR_FILE_NOTCSVplik musi być otwarty jako CSV
5015ERR_FILE_READERRORbłąd odczytu pliku
5016ERR_FILE_BINSTRINGSIZEtrzeba podać rozmiar łańcucha, bo plik jest binarny
5017ERR_INCOMPATIBLE_FILEtablice łańcuchów wymagają pliku tekstowego, pozostałe binarnego
5018ERR_FILE_IS_DIRECTORYto nie jest plik, tylko katalog
5019ERR_FILE_NOT_EXISTplik nie istnieje
5020ERR_FILE_CANNOT_REWRITEpliku nie da się nadpisać
5021ERR_WRONG_DIRECTORYNAMEnieprawidłowa nazwa katalogu
5022ERR_DIRECTORY_NOT_EXISTkatalog nie istnieje
5023ERR_FILE_ISNOT_DIRECTORYto jest plik, a nie katalog
5024ERR_CANNOT_DELETE_DIRECTORYkatalogu nie da się usunąć
5025ERR_CANNOT_CLEAN_DIRECTORYnie udało się wyczyścić katalogu
5026ERR_FILE_WRITEERRORnie udało się zapisać zasobu do pliku
5027ERR_FILE_ENDOFFILEkoniec pliku CSV przy próbie odczytu kolejnej porcji

Jak czytać te kody w praktyce

Odczyt kodu błędu bez zgadywania
//--- zerujemy przed operacja, ktorej wynik chcemy sprawdzic
ResetLastError();

double bufor[];
ArraySetAsSeries(bufor, true);

if(CopyBuffer(uchwyt, 0, 0, 10, bufor) < 10)
  {
   int kod = GetLastError();
   PrintFormat("nie udalo sie skopiowac danych, kod %d", kod);
   ResetLastError();
   return;
  }

Powiązane