Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program "strajkuje" i nie otwiera plików

Ostatnio zmodyfikowano 2012-04-06 13:41
Autor Wiadomość
pawajoro
Temat założony przez niniejszego użytkownika
Program "strajkuje" i nie otwiera plików
» 2012-04-04 23:04:53
Mianowicie:
C/C++
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...
P-53863
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.
P-53864
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:
C/C++
#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 a = (szukajznacznika (napis)) ;
            int k = i - 1; // - a - 3 ;
            //string kuidy [k + 1] ;
            //przepiszkuidy ( kuidy, napis, a, k ) ;
            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 );
            //string url [ k+1 ] ;
            //dotxt ( texturl, url, k ) ;
            //dowysylki ( url, 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
P-53868
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)
P-53884
pekfos
» 2012-04-05 15:17:40
Jak otwierasz plik do zapisu to się tworzy.
C/C++
void CreateFile( const char * p )
{
    std::ofstream f( p );
}
P-53888
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ć? 
P-53889
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.
P-53890
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?
P-53891
« 1 » 2 3 4
  Strona 1 z 4 Następna strona