Jump to content


Photo
- - - - -

C/C++ Gemeinsamer Datei zugriff


Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.

  • Please log in to reply
6 replies to this topic

#1 systemtrader

systemtrader

    Floor Broker

  • *_skilled
  • 288 posts
  • 1992 thanks

Posted 22 May 2012 - 01:40 AM

Hallo

Nun hab ich auch mal eine frage. Wie Löst ihr unter C/C++ Plattform unabhängig das Problem wenn zwei Programme auf eine Datei zugreifen?

In meinem Fall schreibe ich zum Beispiel aus dem MT4 RT Kurse in ein TXT File und Lese es mit einem Externen Programm in C/C++ wider aus bei mir kam es immer wider zu Programmbrüchen wenn gerade zufällig beide auf die Daten in dem TXT File zugreifen was ja auch Logisch ist, gelöst habe ich es über eine Zeitabfrage also so das jedes Programm einen eigenes Zeitfenster hat auf die Daten zuzugreifen. Das ist bestimmt nicht die Beste Lösung daher frag ich mal bei euch nach wie ihr mit diesem Problem umgeht.

Freue mich schon auf eure Anregungen Posted Image
  • 0

Thanked by 7 Members:
RAiNWORM , ronner , Licens , DarthTrader , Vola , Kleinerbroker , WOGO

#2 siscop

siscop

    Floor Broker

  • *_skilled
  • 1,502 posts
  • 7188 thanks
  • Wohnsitz:Egelsbach

Posted 22 May 2012 - 05:51 AM

Ist schon eine weile her aber soviel ich weiss kann man soviele Lesezugriffe haben wie man will. Es darf halt nur einer schreiben. Ohne Parameter gehst du jedoch mit Schreibzugriff auf die Datei.
Bei fopen also ein "r" hinzufügen.
Mich würde ehr interessieren was er als error msg ausgibt beim try/catch wenn nur einer schreibend öffnet.
  • 0

Nicht die Qualität einer Idee zählt, sondern der Status dessen, der sie äußert.
Wolfgang Herles

Es ist dem Untertanen untersagt, den Maßstab seiner beschränkten Einsicht an die Handlungen der Obrigkeit anzulegen
FdG

80% der Ego-Shooter Spieler sind zu Fett um einen Amoklauf durchzuführen


Im Training https://www.swim.com/m-g


Thanked by 7 Members:
Der Wolf , RAiNWORM , ronner , Licens , systemtrader , DarthTrader , Vola

#3 CashorNothing

CashorNothing

    penny-pincher

  • Addict
  • Pip
  • 9 posts
  • 77 thanks
  • Wohnsitz:KA/S

Posted 22 May 2012 - 08:14 AM

Wie siscop schon sagte müsste Lesezugriff immer gehen. Wenn du "gleichzeitig" mit mehr als einem Prozess Lesen und Schreiben willst wirst du um mutex nicht herumkommen.
  • 0

Thanked by 6 Members:
Der Wolf , RAiNWORM , ronner , Licens , systemtrader , Vola

#4 systemtrader

systemtrader

    Floor Broker

  • *_skilled
  • 288 posts
  • 1992 thanks

Posted 22 May 2012 - 08:30 AM

Hallo

Danke für eure Tips wenn ich mir Mutex genauer anschaue dann war ich mit der Einteilung der Zeitfenster doch gar nicht so schlecht beraten, dann werde ich es zukünftig auch so belassen es Funktioniert ja ;-)

Danke aber nochmal
  • 0

Thanked by 4 Members:
Der Wolf , ronner , Vola , Licens

#5 wh

wh

    Floor Broker

  • *_skilled
  • 555 posts
  • 3767 thanks
  • Wohnsitz:Neubrandenburg

Posted 22 May 2012 - 08:34 AM

Vielleicht müsstest Du Dein Problem ein wenig genauer Skizzieren.
Was sind denn das für Anwendungen? Können diese sich gegenseitig erreichen?
etc...

Hier mal ein schönes Beispiel für eine Anwendung:

http://en.allexperts...ad-file-cpp.htm
  • 0
Causality is the relationship between an event (the cause) and a second event (the effect), where the second event is a consequence of the first.

Thanked by 5 Members:
Der Wolf , RAiNWORM , ronner , Vola , Licens

#6 systemtrader

systemtrader

    Floor Broker

  • *_skilled
  • 288 posts
  • 1992 thanks

Posted 22 May 2012 - 08:44 AM

Vielleicht müsstest Du Dein Problem ein wenig genauer Skizzieren.
Was sind denn das für Anwendungen? Können diese sich gegenseitig erreichen?
etc...



MT4 Schreibt Kurse in ein TXT File Schreibend.

Einfaches bsp

EURUSDbid = MarketInfo("EURUSD",MODE_BID);  EURUSDask = MarketInfo("EURUSD",MODE_ASK);    handle=FileOpen("EURUSD-Qwote.csv", FILE_CSV|FILE_WRITE, ';');  if(handle>0)    {	 FileWrite(handle,EURUSDbid ,EURUSDask );	 Print(EURUSDbid);	 FileClose(handle);    }

Mit Python oder C++ Lese ich diese Dateien dann per while Schleife aus das muss ja schief gehen ohne Zeitsynchronisierung ;-)
  • 0

Thanked by 5 Members:
Der Wolf , RAiNWORM , ronner , Vola , Licens

#7 wh

wh

    Floor Broker

  • *_skilled
  • 555 posts
  • 3767 thanks
  • Wohnsitz:Neubrandenburg

Posted 22 May 2012 - 09:07 AM

Mutex wie CashOrNothing schon erwähnt hat.

Mutex - MT4, Python, C++

Data_Seg
Memory Mapped Files

Man muss das Rad ja nicht neu erfinden.
  • 0
Causality is the relationship between an event (the cause) and a second event (the effect), where the second event is a consequence of the first.

Thanked by 7 Members:
DarthTrader , Der Wolf , RAiNWORM , Vola , ronner , systemtrader , Licens

Wichtiger Hinweis für Besucher der Community!

Das Erstellungsdatum des von Dir aufgerufenen Themas liegt bereits einige Zeit zurück. Wir möchten darauf hinweisen, den Inhalt der Diskussion auf seine Aktualität hin zu prüfen. Weitere Informationen findest Du auf dieser Seite.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users