| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: [C++] Programm stürzt bei zu langen Dateinamen ab im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo! Ich habe seit einer geschlagenen Stunde ein Problem bei einem recht einfachem Programm. Es sollte nur automatisch Dateien ...
![]() |
| | #1 (permalink) |
| Registriert seit: 02.01.07 ![]() Likes: 0 | Anzeige 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 ^^) 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);
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());
}
}
}
//rename("alt", "neu");
return 0;
} Edit: Hab den Fehlerverursachenden Bereich eingekreis. (jetzt rot markiert) // oder auch nicht >.> Edit2:Solved :D 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... |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| MS Access - langen text in Datenbank speichern | kito | Code Kitchen | 2 | 03.08.06 08:02 |
| Dateinamen aus Liste extrahieren | ratloser | Die Problemzone | 3 | 23.01.06 15:26 |
| !?Liste von Dateinamen automatisch erstellen?! | !SHOG! | Die Problemzone | 4 | 14.10.05 16:00 |
| Dateinamen als Links | heschx2 | Windows | 2 | 08.10.03 19:07 |
| LANGE-DATEINAMEN-UNTERSTÜTZUNG | TwoFinGaZ | Windows | 5 | 12.03.02 18:54 |