Dateien (1) Datenströme

Ähnliche Dokumente
Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C

high level I/O/ low level I/O

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Dateizugriff unter C

Programmiersprachen Einführung in C

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien

Physische Dateistrukturen

Modellierung und Programmierung

Dateien. INE2, Mittwoch / TE402 M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

E-/A-Funktionalität nicht Teil der Programmiersprache

Algorithmen & Programmierung. Persistenz - Arbeit mit Dateien

File I/O. Persistieren von Daten. Gastvorlesung Ralph Erdt erdt (bei) informatik.fh-wiesbaden.de

Dateien. INE2 M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G. Burkert

8. Arbeiten mit Dateien

Input, Output, Dateien

Einführung in die Programmierung für Physiker. Die Programmiersprache C Ein- und Ausgabe

182. stdio stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h>

Übersicht. Informatik 1 Teil 10 Dateien

File I/O mit CRTL unter OpenVMS

Beispiel / Übung: Prof. Dr. A. Christidis WS 2012/13

Programmierung mit C Datei-Ein- und Ausgabe

file:///h:/dokumente/_fh/ ws /etinfoii/vorlesung/infoii...

Einteilung von Dateien. Streams

Programmieren in C. Die C-Standardbibliothek: Datei Ein- und Ausgabe. Prof. Dr. Nikolaus Wulff

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

Tafelübung zu BS 4. Dateioperationen

Ausgewählte Bibliotheksfunktionen

6.2 Extras/Lesen aus Dateien

und noch ein Spiel Programmiersprache(n) für technische Anwendungen Dipl.math Gerd H. Neugebauer

Programmieren 1 C Überblick

Informatik für Ingenieure (InfIng)

Programmierkurs Kapitel 4: Dateien Seite 1. Verwaltungfeld im Speicher. 4.1 Alternativen zur Programmierung der Eingabe und der Ausgabe

Michael Dienert. 8. Dezember 2016

INE1 Ein-/Ausgabe, Dateien (Files) Einführung Datenstruktur und Operationen Textdateien Binärdateien Standard Streams

Ein- und Ausgabe. C - Kurs Mario Bodemann. 15. September 2010

Strukturen können wie normale Variablen an Funktionen übergeben werden. Strukturen können auch Ergebnis einer Funktion sein

Linux/Unix Systemprogrammierung

GI Vektoren

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling

Ein-/Ausgabe mit Files. File öffnen: Programmieren in C. File *fopen (const char *dateiname, const char *zugriff);

Ein- und Ausgabe. C - Kurs Mario Bodemann. 15. September 2010

Dateien lesen und schreiben mit php

[Strukturen] Vereinbarung Verwendung Operationen mit struct Zeiger auf struct Strukturen auf dem Heap Datenstrukturen gebildet mit struct union

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

Programmiertechnik 1. Unit 12: Programmiersprache C - Betriebssystemschnittstellen. Andreas Polze 1

Ulrich Stein

Dr. Monika Meiler. Inhalt

Programmieren in C++

Programmieren in C/C++ und MATLAB

Dateiverarbeitung Pearson Education, Inc. All rights reserved.

Dateiverarbeitung Pearson Education, Inc. All rights reserved.

Kompaktkurs Einführung in die Programmierung. 11. Ein- und Ausgabe

Betriebssysteme. Tafelübung 5. Dateioperationen. Daniel Friesel.

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

Netzwerksicherheit Musterlösung Übungsblatt 4: Viren

1. Allgemeine Datei (Binärdatei mit formatierten Inhalt)

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Übung 1 1 Ziel In dieser Übung geht es um die Anwendung der (neu) vorgestellten Konzepte zum Thema Speicher und C. Im Einzelnen:

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Übungspaket 30 Kopieren von Dateien

Funktionen. Datentypen Zeiger. Vorlesung Computergrundlagen WS 2010/2011, x y = x + 6

Linux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. FB Automatisierung und Informatik.

Linux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. Hochschule Harz. FB Automatisierung und Informatik.

5. Dateioperationen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

C für Java- Programmierer

Ein- und Ausgabe in Dateien (File I/O)

Arrays (Felder/Vektoren)

2. Programmierung in C

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks

Übungspaket 30 Kopieren von Dateien

Linux Prinzipien und Programmierung

C/C++-Programmierung

6. Eingabe und Ausgabe, Dateien

C für Java-Programmierer

Programmiersprachen Einführung in C

KAPITEL 7. Der Umgang mit Dateien. jetzt lerne ich. In diesem Kapitel lernen Sie etwas über:

8. Datei-Eingabe und -Ausgabe

Probeklausur Name: (c)

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

8. Datei-Eingabe und -Ausgabe

Ein- und Ausgabeumlenkung

Die Bibliothek SysLibFile.lib

C Überlebenstraining

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

In diesen Canvas können Punkte an gültigen Koordinaten gezeichnet werden.

Übungspaket 14 Eindimensionale Arrays

Perl-Praxis. Dateien und Daten. Jörn Clausen

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Hinweise zur Prüfung Programmieren WS0304 Seite 1. Schreiben Sie folgende For-Schleife in eine äquivalente While-Schleife um.

Arrays (Felder) int arrayname[n]; F. Uhlig Computergrundlagen 37/63

Werner Geers. Berufliche Informatik. Zusatzinformationen. 1 DATENTRÄGER UND DATEIEN Datenträger Dateien... 3 ISBN:

Netzwerksicherheit Musterlösung Übungsblatt 5: Firewalls

Transkript:

Dateien (1) Datenströme Standardbibliothek bietet sogenannte Datenströme (engl. Streams) Objekte, in die Informationen geschrieben oder von denen Daten gelesen werden können Zum Arbeiten mit Dateien benötigt man einen Strom, über den Ein- und Ausgaben sowie Positionsangaben realisiert werden Standardbibliothek bietet nur Datenströme, betriebssystemabhängig kann es auch noch weitere Möglichkeiten geben Gepufferte und ungepufferte Ströme Gepufferte Datenströme werden erst geschrieben, wenn genug Daten für einen ganzen Block vorhanden sind ( write back ) Ungepufferte Datenströme werden immer sofort geschrieben ( write through ) Hier: nur Betrachtung gepufferter Ströme

Dateien (2) Datenströme Einige Ströme sind immer geöffnet Standard-Strom stdout stdin stderr Standard-Strom für die Ausgabe Standard-Strom für die Eingabe Standard-Strom für Fehlermeldungen printf, scanf verwenden implizit stdout bzw. stdin Stderr wird für Fehlermeldungen verwendet Unter unixoiden Betriebssystemen sehr sinnvoll, da Datenströme umgelenkt und gefiltert werden können

Dateien (3) Öffnen und Schließen von Datenströmen Ströme werden durch Filehandler repräsentiert: Objekte des Typs FILE Dieses Objekt ist Argument für die Dateioperationen Technisch realisiert durch Zeiger auf Filehandle Filehandle wird vom Betriebssystem verwaltet Wenn Arbeit mit Strom beendet, muss er geschlossen werden Freigabe der Datei Filehandle danach ungültig Beispiel: FILE *datei; datei = fopen("beispiel.txt", "r"); //... // Hier kann der Strom // >datei< verwendet werden. //... fclose(datei); Grundlegende Funktionen Funktion fopen (s, m) fclose(f) fflush(f) Öffnet die Datei s mit dem Modus m und gibt einen Strom F zurück Schließt den Strom F Leert den Strom F

Dateien (4) Öffnen und Schließen von Datenströmen Grundlegende Funktionen Funktion fopen (s, m) fclose(f) fflush(f) Öffnet die Datei s mit dem Modus m und gibt einen Strom F zurück Schließt den Strom F Leert den Strom F fopen öffnet eine Datei: Name ist Parameter liefert Zeiger auf Filehandle zurück, bei Fehler 0 Pfadangabe ist zulässig für Dateiname fclose löst die Verknüpfung zur Datei liefert 0 zurück, wenn ordnungsgemäß ausgeführt fflush sorgt für das Schreiben gepufferter Daten in die Datei liefert 0 zurück, wenn ordnungsgemäß ausgeführt

Dateien (5) Öffnen und Schließen von Datenströmen Unterstützte Modi Modus "r" "r+" "w" "w+" "a" "a+" Öffnen zum Lesen Öffnen zum Lesen und Schreiben Öffnen zum Schreiben. Eine eventuell vorhandene Datei wird überschrieben Öffnen zum Lesen und Schreiben, sonst wie "w" Öffnen zum Schreiben. Ist die Datei vorhanden, wird angehängt Öffnen zum Lesen und Schreiben. Sonst wie "a".

Dateien (6) Öffnen und Schließen von Datenströmen Beispiel mit Fehlerausgabe #include <stdio.h> main() { FILE *datei; if ((datei = fopen("beispiel.txt", "w"))) { //... fclose(datei); } else printf("fehler beim Offnen der Datei!\n"); } // end main

Dateien (7) Ein- und Ausgabe Funktionen für binäres Lesen und Schreiben Funktion fread (b, g, n, F) fwrite(b, g, n, F) Liest n Elemente der Größe g Byte aus F und speichert sie in b Schreibt n Elemente der Größe g Byte von b nach F b Puffer beliebigen Typs mit Größe von mindestens n mal g Byte F Filehandle Binär gelesene und geschriebene Strukturen dürfen keine Zeiger enthalten, da Adressen nur im laufenden Programm Aktualität besitzen Funktionen liefern Anzahl erfolgreich gelesener bzw. Geschriebener Elemente zurück Im Fehlerfall 0 oder ganze Zahl kleiner n

Dateien (8) Ein- und Ausgabe Beispiel zum binären Schreiben von Daten und Abfangen von Dateifehlern #include <stdio.h> main() { typedef struct Adresse_s Adresse_t; struct Adresse_s { char name[30]; // Name der Person long plz; // Postleitzahl char ort[20]; // Wohnort char strasse[50]; // Straße long nummer; // Hausnummer }; Adresse_t Adressbuch[] = { //... Musikeradressliste aus Kapitel Strukturen };

Dateien (9) Ein- und Ausgabe Fortsetzung Beispiel #define ADRESSBUCH_LEN sizeof(adressbuch) / sizeof(adresse_t) FILE *datei; // Öffnen der Datei zum Schreiben if ((datei = fopen("adressen", "w"))) // Das "=" ist hier Absicht { // Schreiben des Datensatzes if (fwrite(adressbuch, sizeof(adresse_t), ADRESSBUCH_LEN, datei) < ADRESSBUCH_LEN) fprintf(stderr, "Daten konnten nicht geschrieben werden\n"); fclose(datei); } else fprintf(stderr, "Fehler beim Öffnen der Datei\n"); } // end main

Dateien (10) Ein- und Ausgabe Außer der sequenziellen Verarbeitung kann man auch gezielt auf bestimmte Positionen in der Datei zugreifen Funktion fseek(f, n, p) ftell(f) Setzt die Position in F auf n Bytes relativ zu p Liefert die aktuelle Position in Bytes relativ zum Dateianfang von F Schreib / Leseposition kann mit fseek gesetzt werden n kann in stdio.h definierte Werte zur Positionsangabe haben: SEEK_SET relativ zum Dateianfang SEEK_CUR relativ zur aktuellen Position SEEK_END relativ zum Dateiende fseek und ftell geben -1 zurück, falls ein Fehler aufgetreten ist