pawajoro Temat założony przez niniejszego użytkownika |
Program "strajkuje" i nie otwiera plików » 2012-04-04 23:04:53 Mianowicie: void perform( string url[], string texturl[], int k ) { int c = 0; cout << "Teraz bedziemy robić paczke..."; do { cout << "Dodatek nr " << c << endl; string oa = texturl[ c ]; cout << oa << endl; cout << "Konwertowanie adresu..." << endl; const char * na = oa.c_str(); printf( na ); cout << "Skonwertowano!" << endl << "Otwieranie pliku..." << endl; fstream file; file.open( na, ios::out | ios::trunc ); if( file.good() ) cout << "Gitara"; cout << "Otwarto!" << endl << "Zapisywanie..." << endl; file << url[ c ]; cout << "Zapisano!" << endl << "Zamykanie..." << endl; file.close(); cout << "Zamknięto!" << endl; c++; } while( c <= k ); }
I "gitara" mi nie gra :-). Nie wyświetla mi się "Gitara", a w folderze plików niema... |
|
DejaVu |
» 2012-04-05 00:01:40 Zapewne pracujesz na innym katalogu roboczym niż Ci się wydaje. Tak swoją drogą polecam Ci pomyśleć jak napisać ten kod krócej. |
|
pawajoro Temat założony przez niniejszego użytkownika |
» 2012-04-05 10:37:13 No, nie wiem. Wywaliłem string oa, ale nic innego nie zauważyłem... Daję pełny kod: #include <iostream> #include <fstream> #include <string> #include <conio.h> #include <stdio.h> #include <curl/curl.h> #include <sstream>
using namespace std;
int linijki( fstream & plik ) { if( plik.good() ) { string napis; int c = - 1; while( !plik.eof() ) { getline( plik, napis ); c++; } return( c ); } else cout << "Error! Nie udalo przetworzyc sie pliku!(106)" << endl; return 0; }
void tablica( fstream & plik, string napis[], int i ) { int c = 0; while( c < i ) { getline( plik, napis[ c ] ); c++; } }
void wypisztablice( string napis[], int i ) { int c = 0; do { cout << c << ": " << napis[ c ] << endl; c++; } while( c < i ); }
void rozdziel( string kuidy[], string autor[], string dod[], string wer[], int k ) { int c = 0; do { string tekst; tekst.insert( 0, kuidy[ c ] ); int nos; nos = tekst.find( "<" ); size_t d1; size_t d2; size_t d3; d1 = tekst.find( ":", nos + 1 ); d2 = tekst.find( ":", d1 + 1 ); d3 = tekst.find( ":", d2 + 1 ); string s1; string s2; string s3; int iz1; int iz2; if( d3 == std::string::npos ) { s3 = "0"; size_t dk = tekst.find( ">", d2 + 1 ); iz2 = dk - d2 - 1; } else { iz2 = d3 - d2 - 1; s3.insert( 0, tekst,( d3 + 1 ), 1 ); } s2.insert( 0, tekst,( d2 + 1 ), iz2 ); iz1 = d2 - d1 - 1; s1.insert( 0, tekst,( d1 + 1 ), iz1 ); autor[ c ].insert( 0, s1 ); dod[ c ].insert( 0, s2 ); wer[ c ].insert( 0, s3 ); c++; } while( c <= k ); }
void sklej( string url[], string autor[], string dod[], string wer[], int k ) { int c = 0; do { string curl = "C:/Kuidland/GO!/package/"; curl.append( autor[ c ] ); curl.append( "/" ); curl.append( dod[ c ] ); curl.append( "/" ); curl.append( wer[ c ] ); curl.append( "/kuid.txt" ); url[ c ] = curl; c++; } while( c <= k ); }
bool url( string url[], int k ) { fstream plik2; plik2.open( "C:/Kuidland/GO!/url.txt", ios::in ); if( plik2.good() ) { int i = linijki( plik2 ); plik2.close(); if( i != k ) { fstream plik; plik.open( "C:/Kuidland/GO!/url.txt", ios::in ); if( plik.good() ) { tablica( plik, url, i ); plik.close(); return true; } else cout << "Nieprawidlowa suma kontrolna!(105)"; } else cout << "Error! Nie udalo otworzyc sie pliku!(104)" << endl; } else cout << "Error! Nie udalo otworzyc sie pliku!(103)" << endl; return false; }
void perform( string url[], string texturl[], int k ) { int c = 0; cout << "Teraz bedziemy robic paczke..." << endl; do { cout << "Dodatek nr " << c << endl; string oa = texturl[ c ]; cout << oa << endl; cout << "Konwertowanie adresu..." << endl; const char * na = texturl[ c ].c_str(); printf( na ); cout << "Skonwertowano!" << endl << "Otwieranie pliku..." << endl; fstream file; file.open( na, ios::out | ios::trunc ); if( file.good() ) cout << "Gitara"; cout << "Otwarto!" << endl << "Zapisywanie..." << endl; file << url[ c ]; cout << "Zapisano!" << endl << "Zamykanie..." << endl; file.close(); cout << "Zamkniêto!" << endl; c++; } while( c <= k ); }
int main() { cout << "Aplikacja do pobierania KUID'ow 'Kuidland' Wersja 1.5 " << endl << endl; fstream plik2; plik2.open( "C:/Kuidland/GO!/kuid.txt", ios::in ); if( plik2.good() ) { int i = linijki( plik2 ); plik2.close(); fstream plik; plik.open( "C:/Kuidland/GO!/kuid.txt", ios::in ); if( plik.good() ) { string kuidy[ i + 1 ]; tablica( plik, kuidy, i ); int k = i - 1; string autor[ k + 1 ]; string dod[ k + 1 ]; string wer[ k + 1 ]; string html[ k + 1 ]; rozdziel( kuidy, autor, dod, wer, k ); string texturl[ k + 1 ]; sklej( texturl, autor, dod, wer, k ); url( html, k ); perform( html, texturl, k ); plik.close(); } else cout << "Error! Nie udalo otworzyc sie pliku!(102)" << endl; } else cout << "Error! Nie udalo otworzyc sie pliku! (101)" << endl; getch(); return 0; }
Dlaczego nie chce mi się włączyć? Walnąć z uprawnień admina? EDYTA: Okazuje się, że wszystkie foldery mam do odczytu (kratka wyboru jest cała zamalowana - kwadracik). Gdy chce to zmienić, to zmienia, lecz jak włączam następnego razu znowu jest do odczytu. Wie ktoś co z tym zrobić? Win7 HP |
|
pawajoro Temat założony przez niniejszego użytkownika |
» 2012-04-05 14:32:41 <facepalm> Przecie te pliki nie istnieją </facepalm>
Pytanie: jak je stworzyć ? Da się tak z poziomu programu? jest Jeszcze jeszcze jeden problem: foldery też nie istnieją (od poziomu C:\Kuidland\GO!, patrz post wyżej) |
|
pekfos |
» 2012-04-05 15:17:40 Jak otwierasz plik do zapisu to się tworzy. void CreateFile( const char * p ) { std::ofstream f( p ); } |
|
pawajoro Temat założony przez niniejszego użytkownika |
» 2012-04-05 16:11:47 Niestety, program nie tworzy we wskazanym adresie pliku. Co trzeba zrobić? |
|
pekfos |
» 2012-04-05 16:18:40 spróbuj ścieżki bezwzględnej. Jak zadziała to musisz w kodzie ustawiać ręcznie katalog startowy. |
|
pawajoro Temat założony przez niniejszego użytkownika |
» 2012-04-05 16:22:40 Jeżeli adres bezwzględny to np. C:\Folder\plik.txt to właśnie takiego używam. Czy problem może występować dlatego, bo program myśli, że ścieżka jest względna, gdy jest inaczej? |
|
« 1 » 2 3 4 |