WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Laden und Speichern im Netzwerk

 

Alex4456
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 17.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.11.2014, 09:35     Titel: Laden und Speichern im Netzwerk
  Antworten mit Zitat      
Hallo,

Ich würde gerne .mat Dateien im internen Netzwerk bereitstellen, sodass andere Computernutzer auf diese zugreifen können.

Jetzt sollen diese .mat Dateien jedoch immer aktualisiert werden. Im schlimmsten Fall könnten genau zeitgleich save&load von unterschiedlichen Rechner auf die Datei ausgeführt werden.

Was passiert dann? Mit welchem Fehler muss ich rechen? Und was für eine Maßnahme kann ich dagegen ergreifen? Konnte in der Hilfe dazu leider nichts finden.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 11.11.2014, 15:01     Titel:
  Antworten mit Zitat      
Ich würde sagen das ist nichttrivial. Nicht umsonst gibt es Spezialprodukte für Versionsmanagement (im Bereich des teambasierten Entwickelns) oder so was wie SharePoint für Dateien.

Ich bin mir hier nicht sicher wie professionell die Arbeitsumgebung sein soll. Kann beliebig simpel oder aufwändig werden

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andy1989
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2021, 12:45     Titel: Netzwerkspiel
  Antworten mit Zitat      
Hey,

eigentlich habe ich dasselbe Problem. Ich programmiere ein rundenbasiertes Spiel und suche eine geeignete Informationsaustauschmethode zwischen den Matlab-Instanzen auf unterschiedlichen Computern. Vllt mal kurz zum Verständnis. Aktuell nutze ich eine *.mat und dort stehen nur ein paar unterschiedliche Informationen, sodass jeder Spieler anhand des Spielzuges weiß, wann er dran ist oder wie er agieren kann.

Aber genau wie oben beschrieben, hatte ich irgendwann einen Konflikt mit dem save und load-Befehl. Der load-Befehl wurde in einer Timer-Funktion immer wieder aufgerufen und das Spielinterface anhand der Informationen angepasst (zB dass man Karten ziehen darf, etc).

Irgendwann bekomme ich die Warnung, dass die Datei womöglich nicht ganz eingelesen werden konnte, weil beispielsweise ein anderer Spieler seinen Zug beendet hat und Informationen reingespeichert hat, während einer die Daten lädt.

Dann habe ich das ganze mit dem
Code:
matfile('xx.mat','writable',true)


versucht. Da hatte ich auch schon Schwierigkeiten mit dem Auslesen von Daten. Wahrscheinlich weil sich das auch überschnitten hat.

Meine Frage wäre jetzt, wie man das konfliktfrei hinbekommt. Datenbank, txt Datei, Excel, oder evtl schauen, ob eine Datei gerade beschrieben wird, dass dann solange gewartet wird bis sie frei ist? Keine Ahnung.

Ich habe mal das Prinzip im Anhang dargestellt.

Prinzip.jpg
 Beschreibung:

Download
 Dateiname:  Prinzip.jpg
 Dateigröße:  137.07 KB
 Heruntergeladen:  289 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.01.2021, 17:23     Titel:
  Antworten mit Zitat      
Hallo,

wäre es eine Lösung, die Datei im Falle einer Warnung kurze Zeit später nochmal einzulesen? Dann könnte man etwas in der Art machen:

Code:
lastwarn('') % vorherige Warnungen löschen
done = false;
while ~done
    % Versuch zu lesen
    if ~isempty(lastwarn)
          pause(0.2)
    else
       done = true;
    end
end


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy1989
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2021, 18:20     Titel:
  Antworten mit Zitat      
Ja war auch mein Ansatz.

Hatte das in einer While-Schleife und taucht trotzdem auf.
3x mit try laden, catch, try laden, catch try laden


Hab noch einen Ansatz mit einer anderen Datei, wo ich beispielsweise sowas wie ein Lock setze, sodass die Spieler nur nach einander das öffnen können. Wenn das soweit klappt, stelle ich das hier rein
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.01.2021, 18:25     Titel:
  Antworten mit Zitat      
Hallo,

try springt nur bei einer Fehlermeldung in catch, nicht bei einer Warnung.
Minimalbeispiel:
Code:
try
    warning('test')
catch
    disp('caught')
end


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.