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

C++ otwieranie plików txt z pomocą naszego exe

Ostatnio zmodyfikowano 2014-09-30 14:39
Autor Wiadomość
Roofy5
Temat założony przez niniejszego użytkownika
C++ otwieranie plików txt z pomocą naszego exe
» 2014-09-29 13:59:00
Witam!

Mam napisany program, który wczytuje dane z pliku txt i i wykonuje na nich pewne operacje.
Chciałbym, żeby zamiast wpisywania nazwy pliku txt w programie - aby ten go wczytał - można było "przeciągnąć" nasz plik txt i "rzucić" na plik exe, a program sam wykona na nim operacje wczytania i kilka innych funkcji.
Jak się do tego wgl zabrać?? Potrzebna jest jakaś dodatkowa biblioteka, czy można to zrobić za pomocą iostream??

Pozdr.
P-117748
wojownik266
» 2014-09-29 14:28:09
O takich cudach jeszcze nie słyszałem ale być może jestem trochę zacofany!?
P-117749
akwes
» 2014-09-29 14:32:57
@wojownik266
to normalna sprawa, jeżeli chodzi o konsolowe apki :) Używa się do tego argumentów funkcji main().

http://stackoverflow.com​/questions/4659105​/how-enable-dragging-a-file-on-the-exe-and-get-it-as-parameter

Your program does not need to do anything special apart from handling command-line arguments. When you drag-drop a file onto an application in Explorer it does nothing more than to pass the file name as argument to the program. Likewise for multiple files.

If all you expect is a list of file names, then just iterate over all arguments, do whatever you want with them and be done. This will work for zero to almost arbitrarily many arguments.
P-117750
Roofy5
Temat założony przez niniejszego użytkownika
» 2014-09-30 12:42:59
Dzięki za podrzucenie tego tematu @akwes :)

Dla ciekawych tego tematu ( oraz dla @wojownik266 :) ) - napisałem coś takiego:

C/C++
int main( int argc, char * argv[ 1 ] )
{
    if( argv[ 1 ] != 0 )
    {
        wczytaj( argv[ 1 ] );
    }
    else
    {
        konsola();
    }
    start();
    .
    .
    .

Teraz, gdy przeciągnę jakiś plik txt na moją aplikacje exe, program automatycznie wczytuje dane i wykonuje procedurę start.
Jeżeli uruchomię program normalnie, to najpierw uruchamiana jest procedura konsola(), a po wykonaniu jej operacji, uruchamia się start();

Mam nadzieję że komuś się przyda
Pozdr.
P-117795
pekfos
» 2014-09-30 14:39:01
C/C++
if( argv[ 1 ] != 0 )
Lepsze by było użycie argc. Nie będzie niespodzianek, jak ktoś zechce użyć trzeciego argumentu i kolejnych.
P-117807
« 1 »
  Strona 1 z 1