Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Daten aus Datei einlesen (http://www.expert-advisor.com/forum/showthread.php?t=5253)

Leopold 30.10.16 12:09

Daten aus Datei einlesen
 
Hallo zusammen,

ich benötige hilfe beim einlesen von Daten aus einer Datei.

Das schreiben in eine Datei hab ich bereits geschafft.
Nun möchte ich aber bestimmte werte wieder einlesen.

Beispiel:

Ich schreibe in eine Zeile 2 Werte die durch z.B. ein Komma getrennt sind.
Wie lese ich diese 2 Werte wieder getrennt ein?
Ich habe 2 Variablen, in der 1.Variable soll der 1. Wert und in der 2. Variable der 2. Wert von der Datei eingelesen werden.

Als weiteren schritt möchte ich in ein Array den 1. Wert der letzten 20 Zeilen und den 2. Wert der letzten 20 Zeilen einlesen.


Bitte um eure Hilfe.

Kronenchakra 30.10.16 21:48

Hallo!

Code:

int  StringSplit(
  const string  string_value,      // A string to search in
  const ushort  separator,          // A separator using which substrings will be searched
  string        & result[]          // An array passed by reference to get the found substrings
  );

Macht genau das was du möchtest, einen String teilen und in Array stopfen.
Ich würde als Separator einen Stichpunkt nehmen und die Datei .csv nennen,
dann kannst du sie direkt mit Excel öffnen.

Code:

handle=FileOpen(Filename, FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);
hat sich bewährt.

Excel kann die Datei aber nur im Lesemodus öffnen, falls MQL5 die Datei noch offen hat.

Viel Erfolg!

Leopold 30.10.16 23:21

Vielen Dank für die Antwort,

werde ich gleich in den nächsten Tagen probieren.

Leopold 07.01.17 17:55

Zeile lesen bei CSV
 
Hallo,

habe das damals mit einer txt Datei ausprobiert und hat super funktioniert!
Danke nochmal!

Jetzt möchte ich aber das ganze mit einer csv Datei machen wie du empfohlen hast. Hier ergibt sich aber das Problem, dass mit FileReadString bei einer CSV nur bis zum ; gelesen wird. D.h. er zählt wenn in einer Zeile 2 Werte stehen auch 2 Zeilen.

Wie kann ich dieses Problem lösen?

Danke für eure Hilfe!

Kronenchakra 07.01.17 19:56

Lies es als Textdatei und teile die Zeile mit StringSplit.

Leopold 14.01.17 10:29

Danke! so funktioniert es.


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:59 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum