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

Ścieżka do pliku

Ostatnio zmodyfikowano 2011-01-04 09:25
Autor Wiadomość
Mrowqa
Temat założony przez niniejszego użytkownika
Ścieżka do pliku
» 2011-01-02 20:09:49
Witam,
mam jedno pytanie, otóż:

co zrobic, aby uzyskac aktualna sciezke odpalonego programu ?
Chodzi mi o to ze jak otwieram plik strumieniem, to zebym mogl podac "niepelna" sciezke, tzn.
C/C++
strumien.open( "baza\\nazwa_pliku.rozszerzenie", tryb_otwarcia ) //baza to folder, ktory znajduje sie w tym samym folderze co odpalony program, ktory zapisuje
co zrobic aby moc tak wpisywac ? czy jest jakas funkcja, ktora zwraca string (lub jakis inny ciag znakow) z aktualna sciezka programu ?? (oczywiscie folderu, w ktorym znajduje sie ten program)

z gory dziekuje,
pozdrawiam
P-26151
ison
» 2011-01-02 20:14:22
i tak możesz tak przecież robić, nie musisz podawać pełnej ścieżki

wyświetlanie ścieżki odpalonego programu:
C/C++
#include <cstdio>

int main( int argc, char * argv[] )
{
    if( argc > 0 ) printf( "Sciezka programu: %s\n", argv[ 0 ] );
   
}
P-26152
pekfos
» 2011-01-03 14:14:48
to nie ścieżka tylko polecenie odpalające program. jak uruchomisz przykład.exe przez cmd to wa argv[0] będzie "przykład" a nie np C:\przyklad.exe
P-26176
DejaVu
» 2011-01-03 14:31:51
Dokumentacja
GetCurrentDirectoryPobiera bieżący katalog roboczy dla obecnego procesu. (funkcja)
P-26177
Mrowqa
Temat założony przez niniejszego użytkownika
» 2011-01-04 09:13:22
Moglibyscie podac jakis przyklad ? ja w WinAPI sie nie orientuje jeszcze (nie uczylem sie)
Probowalem tak wywolac:
C/C++
#include <iostream>
#include <windows.h>
int main()
{
    std::cout << GetCurrentDirectory( 2, 0 ) << std::endl; // ten pierwszy parametr ustawialem tez na 0 i 1
    system( "pause" );
   
}
i ciagle zamiast sciezki otrzymywalem:
28
Aby kontynuowac, nacisnij dowolony klawisz . . .

Mi konretnie chodzi o to by to byl string (albo c-string lub jakas tablica char czy cos takiego, zeby sie dalo dodac), bo chcialem dodac do sciezki folder, i do tego folderu zapisywac i odczytywac pliki, np:
C/C++
string sciezka = aktualna_sciezka + "baza\\" + nazwa_pliku;
fstream strumien;
strumien.open( sciezka, tryb_otwarcia );
P-26200
DejaVu
» 2011-01-04 09:18:27
Normalnie szczyt lenistwa - mieć funkcję i nie dogooglać sobie. Ba... wystarczyło wejść na msdn'a:
C/C++
#include <windows.h>
#include <cstdio>
#include <tchar.h>

#define BUFSIZE MAX_PATH

void _tmain( int argc, TCHAR ** argv )
{
    TCHAR Buffer[ BUFSIZE ];
    DWORD dwRet;
   
    if( argc != 2 )
    {
        _tprintf( TEXT( "Usage: %s <dir>\n" ), argv[ 0 ] );
        return;
    }
   
    dwRet = GetCurrentDirectory( BUFSIZE, Buffer );
   
    if( dwRet == 0 )
    {
        printf( "GetCurrentDirectory failed (%d)\n", GetLastError() );
        return;
    }
    if( dwRet > BUFSIZE )
    {
        printf( "Buffer too small; need %d characters\n", dwRet );
        return;
    }
   
    if( !SetCurrentDirectory( argv[ 1 ] ) )
    {
        printf( "SetCurrentDirectory failed (%d)\n", GetLastError() );
        return;
    }
    _tprintf( TEXT( "Set current directory to %s\n" ), argv[ 1 ] );
   
    if( !SetCurrentDirectory( Buffer ) )
    {
        printf( "SetCurrentDirectory failed (%d)\n", GetLastError() );
        return;
    }
    _tprintf( TEXT( "Restored previous directory (%s)\n" ), Buffer );
}
P-26201
Mrowqa
Temat założony przez niniejszego użytkownika
» 2011-01-04 09:25:21
ja tylko przetlumaczylem sobie to z poczatku, i popatrzylemna na inna funkcje, ale nie znalazlem tego, dzieki

EDIT:
latwiejszy ( i dla mnie do zrozumienia ;p ) jest przyklad ison'a :D
P-26202
« 1 »
  Strona 1 z 1