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

fopen() fclose() nicht ganz klar

 

brichun
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2010, 17:04     Titel: fopen() fclose() nicht ganz klar
  Antworten mit Zitat      
Hi,


Code:

A=fopen('ABC.txt','w')
ans
        4
B=4;
fprintf(B,'Test');
fclose(B)

 


Hab herausbekommen dass die FileID nur eine Zahl ist un nichts mit dem Variablennamen zutun hat.

Durch weiteres rumprobieren, habe ich das fclose mal weggelassen.

Code:

A=fopen('ABC.txt','w')
ans
        4
B=4;
fprintf(B,'Test');
fprintf(B,'Test2');
fprintf(B,'Test4');

 



Dachte zuerst, dass die Printdaten verloren gehen. Es war aber nicht so, die Daten wurden alle schön in die ABC.txt Datei geschrieben.

Wieso braucht man dann überhaupt die fclose() Funktion wenn es auch ohne geht?

Danke

Gruß

Brichun
Private Nachricht senden Benutzer-Profile anzeigen


_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 16.12.2010, 18:12     Titel:
  Antworten mit Zitat      
Du kannst dir das vorstellen wie bei Notepad.

Dort kannst du auch eine Datei öffnen und reinschreiben ohne diese zu schließen.
Aber wenn du beispielsweise von einem anderen Programm drauf zugreifst können Probleme auftreten. Nur mit dem Schließen der Datei speicherst du sie entgültig und gibst sie wieder komplett frei.

und die FileID ist nicht nur eine Zahl sondern es ist quasi der Wegweiser zur Datei. Ohne diesen Wegweiser findest du die Datei nicht.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.12.2010, 01:18     Titel: Re: fopen() fclose() nicht ganz klar
  Antworten mit Zitat      
Hallo brichun,

Das Betriebssystem kann nur eine begrenzte Anzahl von Files gleichzeitig offen halten. Für einen Thread sind das unter WindowsXP z.B. 512 Files. Probiere es einfach mal aus:
Code:

for i = 1:1e4
  FID = fopen(fullfile(tempdir, sprintf('File%d', i)), 'w');
  if FID < 0
    error('Failed for file %d', i);
end
 

Deshalb ist es sinnvoll die Files auch geordnet wieder zu schließen.
Zudem kann man ein File auch (aus Versehen) mehrfach öffnen. Wenn man dann im File gleichzeitig liest und schreibt können die Auswirkungen recht wirr werden. Deshalb ist es ratsam so wenig wie möglich offene Files zu haben.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
brichun
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 13.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2010, 13:30     Titel:
  Antworten mit Zitat      
Aso...... jetzt wirds etwas heller im Walde


Na dann danke ich euch für die Info


Gruß
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 - 2025 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.