Hallo!
Ich habe seit einer geschlagenen Stunde ein Problem bei einem recht einfachem Programm. Es sollte nur automatisch Dateien umbenennen können. Merkwürdigerweise stürzt das Programm bei zu kurzen Dateinamen ab. Jedenfalls habe ich diese Abhängigkeit feststellen können.
Hier mal der C++ Code:
(Mit MS-VC++ 6.0 gecoded, nicht sehr schön geschieben, ich weis ^^)
Danke schonmal im Vorraus
Edit: Hab den Fehlerverursachenden Bereich eingekreis. (jetzt rot markiert) // oder auch nicht >.>
Edit2:Solved
Fehler lag doch woanders: War auch ein blöder Fehler ^^
Die Funktion hat die Pfade schon relativ ausgegeben, und die Schleife dafür in der main hat den Debug error hervorgerufen...
Ich habe seit einer geschlagenen Stunde ein Problem bei einem recht einfachem Programm. Es sollte nur automatisch Dateien umbenennen können. Merkwürdigerweise stürzt das Programm bei zu kurzen Dateinamen ab. Jedenfalls habe ich diese Abhängigkeit feststellen können.
Hier mal der C++ Code:
(Mit MS-VC++ 6.0 gecoded, nicht sehr schön geschieben, ich weis ^^)
Code:
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <windows.h>
#include <string>
#include <vector>
#include <time.h>
#include <io.h>
using namespace std;
void GetFolderStruct(bool dirs, vector<string>& Files, char* folder)
{
struct _finddata_t c_file;
long hFile;
/* Erste Datei im momentanen Ordner finden */
if((hFile = _findfirst("*.*", &c_file)) == -1L)
printf("No subdirectories in current directory!\n");
if((c_file.attrib)){
if (dirs == true && (c_file.attrib & _A_SUBDIR ))
Files.push_back(c_file.name);
if (dirs == false)
if (!(c_file.attrib & _A_SUBDIR))
Files.push_back(c_file.name);
}
/* Die restlichen *.* Dateien finden */
while(_findnext(hFile, &c_file) == 0){
if((c_file.attrib)){
if (dirs == true && (c_file.attrib & _A_SUBDIR ))
Files.push_back(c_file.name);
if (dirs == false)
if (!(c_file.attrib & _A_SUBDIR))
Files.push_back(c_file.name);
}
}
_findclose(hFile);
}
int main(int argc, char* argv[])
{
vector<string> Files;
GetFolderStruct(false,Files,"Debug");
string now,n2,such,ers,temp;
int marker;
cout << "Zeichen suchen:";
cin >> such;
cout << "\nErsetzen mit:";
cin >> ers;
cout << "\n\n";
for (int i=0;i<Files.size();i++)
{
now=Files[i];
for (int j=0;j<now.size();j++) //Relativen Pfad extrahieren
{
if (now.substr(i,1)=="/")
marker=i;
}
cout << "\n" << now.substr(0,marker);
n2 = now.substr(0,marker);
[COLOR=red]for (int k=0;k<n2.size()-such.size();k++)
{
if (n2.substr(k,such.size()) == such)
{
temp="";
temp.append(n2.substr(0,k));
temp.append(ers);
temp.append(n2.substr(k+such.size(),n2.size()-k-such.size() ) );
cout << "\n" << temp;
rename(n2.c_str(), temp.c_str());
}
}[/COLOR]
}
//rename("alt", "neu");
return 0;
}
Danke schonmal im Vorraus
Edit: Hab den Fehlerverursachenden Bereich eingekreis. (jetzt rot markiert) // oder auch nicht >.>
Edit2:Solved
Fehler lag doch woanders: War auch ein blöder Fehler ^^
Die Funktion hat die Pfade schon relativ ausgegeben, und die Schleife dafür in der main hat den Debug error hervorgerufen...