suche C Source Code um Files umzubennnen

R

-RedMoon-

Guest
Hi,
ich suche einen rudimentären Sourcecode in C oder C++, den ich selber noch anpassen kann, also ein Grundgerüst.

Am Ende soll das Ding folgendes machen:

in eine Parameterdatei (textbasiert) trage ich diverse Parameter ein, die im Dateinamen enthalten sein sollen.
Das Programme liest dann eine Datei ein, durchsucht den Inhalt nach einer bestimmten Zeichenfolge (Position ist fest), kombiniert diese Zeichenfolge mit den Infos aus der Parameterdatei und benennt die eingelesen Datei so um.

Ich hatte so was im Studium sehr oft programmiert, aber irgendwie bekomme ich die Basics mit den Dateioperationen nicht mehr hin :heul:
Habe auch 15 Jahre nichts mehr gemacht
 
Das klingt eher nach einem Job für ein shell-script als nach etwas das ich mit C angehen wollte. Muss das sein?
 
ein Linux Script ist auch angedacht, allerdings nur zum starten des Programms und eventuell Übergabe von Parametern. Die Hauptfunktionen würde ich schon gerne in C/C++ machen.
Ich bin mir aber auch gar nicht sicher, ob Dateioperationen zum Auslesen von Dateiinhalten mit reinem Scripting möglich wären
 
Ich bin mir aber auch gar nicht sicher, ob Dateioperationen zum Auslesen von Dateiinhalten mit reinem Scripting möglich wären

Bisher hast du nichts genannt was nicht mit ein paar Zeilen Script deutlich einfacher machbar wäre als in C. Vielleicht durchschaue ich aber auch nicht ganz worum es geht. Wird das mit einem Minimalbeispiel klarer?
 
Ich hatte so was im Studium sehr oft programmiert, aber irgendwie bekomme ich die Basics mit den Dateioperationen nicht mehr hin :heul:
Habe auch 15 Jahre nichts mehr gemacht
Trotzdem sollte doch bekannt sein, dass für C Dateioperationen in <stdio.h> zu finden sind. Oder halt moderner über Google (da findet man nicht nur auf stackoverflow die Antwort zu den meisten Fragen).

Und wenn Du c++ nutzt, kannst Du auch std::rename verwenden
std::rename - cppreference.com
Da Du in beiden Fällen den std::string in ein char* umwandeln musst:
c++ - std::string to char* - Stack Overflow

ein Linux Script ist auch angedacht, allerdings nur zum starten des Programms und eventuell Übergabe von Parametern. Die Hauptfunktionen würde ich schon gerne in C/C++ machen.

Ich bin mir aber auch gar nicht sicher, ob Dateioperationen zum Auslesen von Dateiinhalten mit reinem Scripting möglich wären
Was sollte denn mit bash und ein paar, unter jedem Unix/Linux seit Jahrzehnten vorhandenen Kommandos, nicht gehen, so lange keine GUI nötig ist.

Bisher hast du nichts genannt was nicht mit ein paar Zeilen Script deutlich einfacher machbar wäre als in C.
Einfacher ist relativ. Unter Linux würde mir da spontan die (wieder-)Einarbeitung in die Bash, sed, awk und co als "negativ" einfallen. Aber natürlich nur, wenn die Standard-Funktionen in C oder C++ noch bekannt sind.
 
Einfacher im Sinne von "muss nicht alles selber machen" sondern kann auf Dinge wie sed und awk zurück greifen die einen Großteil der Aufgabe schon fertig implementiert haben. Die passenden Beispiele auf stackoverflow finden sich schnell.
 
ok, es wurden ja schon einige Dinge hier genannt, und meine graue Zellen fangen an sich langsam zu erinnern. Ich habe eben in der Richtung nichts produktives gemacht und alles vergessen.
Im Prinzip wäre ja auch ein Script möglich, wobei ich in Richtung Linux Scripting so gut wie keine Ahnung habe.
 
So hab ich mal schnell in C++ gemacht
#include "stdafx.h" #include <iostream> #include <fstream> #include <string> - Pastebin.com -> PasteBin URL

Liest die "Datei.txt" ein mit den Parametern ( Datei.txt muss bei der .exe sein im Verzeichnis)
1. Zeile = "Suchen"
2. Zeile = "Ersetzen"
3. Zeile = "Suchen"
4. Zeile = "Ersetzen"
usw.

Also wenn Datei.txt gefüllt ist mit
Hallo
Test
123
987
wird jede Datei die "Hallo" enthält umbenannt in "Test"
und jede mit "123" wird zu "987"

vielleicht hilft es dir ja^^
falls du es auf Linux laufen lassen willst, dann muss die
vector<string> listFilesInDirectory(LPCWSTR directoryName)
Function abgeändert werden, weil es WIN API Befehle nutzt um alle Datein als Vector<String> zu returnen.
C++ List Files In Directory hier ist ein Beispiel und wird ja auch als Vector<String> used und kann somit dann als Schleife an einen weiteren String übergeben werden.
 
Zuletzt bearbeitet:
Zurück