Anonymní profil zafan – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil zafan – Programujte.comAnonymní profil zafan – Programujte.com

 

Příspěvky odeslané z IP adresy 213.168.191.–

zafan
C / C++ › Rename() problem
16. 4. 2016   #209989

Vyřešeno, chyba byla ještě odjinud, špatné kódování zdrojového souboru.
Každopádně moc děkuji za pomoc.

zafan
C / C++ › Rename() problem
16. 4. 2016   #209987

Lomítko tam mám, to by nefungoval MoveFile ani pro CZ, který funguje normálně, jen ty dva po něm nefungují. Zkusila jsem GetLastError() a ten mi řekl 2, což by podle chytrého webu mělo znamenat, že soubor neexistuje.
Ale zvláštní je, že to vyskočilo jen jednou a to až na konci, neskákalo to při každé iteraci. Proměnné mám správně nastavené a i kdyby ne, tak ty soubory se generují podle pojmenování proměnných. tzn. vytvoří se soubor pdf s označením z proměnných -> smažou se ty, které tam být nemají -> přejmenují se, ty které by měly

zafan
C / C++ › Rename() problem
16. 4. 2016   #209985

Cesta pochází z  téhle funkce:

GetCurrentDirectory(BUFSIZE, Buffer);

cestu vrací správně (kontroloval jsem, také mě to napadlo), takže tam bych problém neviděl. Vlastně je jedno jestli zadám cestu nebo ne, chová se to stále stejně, ale děkuji.

zafan
C / C++ › Rename() problem
16. 4. 2016   #209983

Omlouvám se, jestli se to tu už náhodou vykytlou, ale už dlouho hledám po internetu na nemohu přijít na záludnost, týká se to hromadného přejmenování a mazání souborů.

for(int i = 0; i < 194; ++i)
	{
		for(int j = 0; j < sizeof(del)/sizeof(del[0]); ++j)
		{
			if(names[i] == del[j])
			{
				remove((path.str() + cz_prefix + del[j] + pdf).c_str());
				remove((path.str() + en_prefix + del[j] + pdf).c_str());
				remove((path.str() + ru_prefix + del[j] + pdf).c_str());
				cout << ".";
				continue;
			}
		}
		MoveFile((path.str() + cz_prefix + to_string(i+1) + pdf).c_str(), (path.str() + cz + names[i] + pdf).c_str());
		MoveFile((path.str() + en_prefix + to_string(i+1) + pdf).c_str(), (path.str() + en + names[i] + pdf).c_str());
		MoveFile((path.str() + ru_prefix + to_string(i+1) + pdf).c_str(), (path.str() + ru + names[i] + pdf).c_str());
		cout << "*";
	}

remove funguje normálně, ale MoveFile/rename mají úplně stejná chování a to, že když dojde na rename, tak se vykoná jen
MoveFile((path.str() + cz_prefix + to_string(i+1) + pdf).c_str(), (path.str() + cz + names[i] + pdf).c_str());
a zbytek jakoby tam nebyl, zkoušel jsem to jak bez cesty, tak i s cestou k souboru a nefunguje to, včetně toho, že bych pro jednotlivé lokalizace cyklus rozdelil, výsledek je vždy stejný...

Moc děkuji za pomoc.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý