Wie kann ich Daten mit C/C++ Öffnen und Kopieren usw.

Gast #4846539
HEY :)
Ich bin Programmierer in c/c++
(Noch nicht so lange)
Habe vor ein Programm zu Programmieren das folgendes tun soll :

Wenn eine Datei/Verzeichnis nicht existiert das sozusagen in einer 
Variable oder so speichern das die Datei/Verzeichnis nicht existiert so 
dass andere Abschnitte des Programms abrufen können.
.
Und wie bekomme ich es hin das ich z.b. der Inhalt einer Textdatei in 
einer Variable zwischengespeichert werden kann?
.
Außerdem wie kann ich einen neuen Ordner erstellen ?
.
Und wie kann ich generell Dateien erstellen ?
.
Währe echt nett wenn ihr mir eine Webseite oder auch ein beispiel Code 
geben könntet (<--- Bitte mit Erklärung :D)
Danke an alles zu diesem Thema ;)
Gast #4846591
TimDerLauch schrieb:
> Wieso kannst du mir es nicht einfach sagen anstatt so ne Antwort los zu
> werde ? >:(

Wie schon geschrieben sind das Basics.

Sagen kann er es nicht, weil überhaupt keine Angaben dazu gemacht werden
- auf welchem System (Windows, Linux, embedded-derivate, lokal, im 
Netzwerk, ..)
- was Du schon kannst (Stringverarbeitung? OS-System-Calls? FILE?)
- welche Sprache (C? oder C++? Mit .NET? oder Boost? ...)
- Um Welche Größenordnungen es bei den Text-Dateien geht (wegen: In 
einer Variable speicherns)

TimDerLauch schrieb:
> Wenn eine Datei/Verzeichnis nicht existiert das sozusagen in einer
> Variable oder so speichern das die Datei/Verzeichnis nicht existiert so
> dass andere Abschnitte des Programms abrufen können.

Das könnte man so verstehen, als ob Du schon Probleme hast, eine binäre 
Information in einer Variablen zu speichern und abhängig davon den 
Programmfluss zu ändern. Da ist die Antwort von Nase richtig.
#4846646
TimDerLauch schrieb:
> Ich bin Programmierer in c/c++
> (Noch nicht so lange)

Das ist so nicht ganz richtig. Du bist offensichtlich ein blutiger 
Anfänger und hast noch kein Grundlagen Buch über C gelesen - da würde 
sowas wie Datei- und Verzeichniszugriff nämlich drin stehen.

Und weil die notwendigen Grundlagen für einen Forenpost viel zu 
umfangreich sind, solltest Du Dir lieber so ein Buch besorgen.

BTW: Bei den Preisen die Amazon für 'n K&R aufruft, lohnt sich 
vermutlich der Gang in die nächste Bibliothek...
#4846710
TimDerLauch schrieb:
> Wenn eine Datei/Verzeichnis nicht existiert das sozusagen in einer
> Variable oder so speichern das die Datei/Verzeichnis nicht existiert so
> dass andere Abschnitte des Programms abrufen können.

Das würde ich nicht tun, führt nur zu Race Conditions. Normalerweise 
versucht man einfach zu tun, was man will (Datei erstellen, löschen, 
etc.) und schaut dann nach, ob es geklappt hat. Wenn es nicht geklappt 
hat, bekommt man meist auch gleich den Fehlercode in errno und kann mit 
errorstr eine Fehlermeldung anzeigen.

TimDerLauch schrieb:
> Und wie bekomme ich es hin das ich z.b. der Inhalt einer Textdatei in
> einer Variable zwischengespeichert werden kann?

Wenn es nur mit C mitteln sein soll, dann zuerst fopen, mit fseek zum 
Dateiende, mit ftell die Grösse ermitteln, mit malloc den Speicher 
reservieren, dann mit rewind oder fseek zurück zum Dateianfang, und dann 
mit fread die Datei in den Speicher lesen. Führt aber zu sehr viel 
verschwendetem Speicher und vielen möglichen Fehlerquellen, die man 
abfangen muss.
Wenn es für Posix konforme Systeme ist, und sich die Dateigrösse nicht 
ändert, kann mmap sinnvoll sein. Das mappt eine Datei direckt in den 
Speicher.
Das oben beschriebene ist aber nur sinvoll, wenn man wirklich ständig 
Zugriff auf zufällige Positionen in Files braucht. Ansonsten sollte man 
Dateien immer in kleinen Stückchen lesen/schreiben, deren Grösse 
ignorieren, und nie mit fseek die Position ändern oder mit ftell 
auslesen. Das hat den Vorteil, dass weniger Speicher verbraucht wird, 
man statt Daten beliebige Streams nehmen kann, z.B. mittels einer Pipe 
die Ausgabe von anderen Prozessen, etc.
(Firma: RUB) #4846942
Rolf M. schrieb:
> keinLichtAufGing schrieb:
>> Ist das ein Troll oder reden Leute heute wirklich so?
>
> Also normal ist es nicht.
Ich wuerde es so formulieren:
Es ist normal, wenn :
- jemand offensichtlich kein Plan von Tuten und Blasen hat,
- sich offensichtlich keine Muehe gibt auch nur die Grundlagen
  zu erlernen,
- jemand will, dass andere sein Problem loesen und am besten direkt
  fertigen Code posten den man per Copy-Pasterino einfach nutzen kann.

Unter diesen Gegebenheiten ist dieses Verhalten an Antworten 
tatsaechlich normal, nachvollziehbar und absolut gerechtfertigt.


Die Antworten waeren noch besser ausgefallen, wenn der TO das ganze in 
etwa so formuliert haette:
1
Super Duper mega Wichtig!!1elf
2
Echt Dringend!
3
Bitte nur fertigen Code posten!
4
Ich muss die Amper hoch skillen!

In diesem Sinne:
Guten Rutsch!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.