Namen in eine Datei schreiben



  • hmm ich glaube der hat die datei nicht gefunden. ich versuche mich gerade an meiner ersten version die zwar nicht so schön ist aber funktioniert bis auf

    unsigned int pos = vectorlines[i].find("__VarName__");
    

    wenn ich pos ausgeben lasse dann findet er immer bei pos. 4294967295 VarName und dann noch ab und zu bei pos 22, was richtig ist.

    wenn ich die folgendes mache:

    If( vectorlines[i].find("__VarName__") >0 && vectorlines[i].find("__VarName__") < 10000)
    unsigned int pos = vectorlines[i].find("__VarName__");
    

    Das gleiche ist bei deinem Code aber auch 😞



  • ###error### schrieb:

    wenn ich pos ausgeben lasse dann findet er immer bei pos. 4294967295 VarName und dann noch ab und zu bei pos 22, was richtig ist.

    4294967295 ist std::string::npos. Falls du das bekommst, dann enthält der string die gesuchte Zeichenkette nicht. Dann ist wohl der Aufbau deiner vorlage.nsi flasch. 😉



  • haha ne ich habs geschafft den nächsten anfänger fehler zu produzieren

    for (int i....){
           for (int i.....) 
    }
    

    zweimal die gleiche variable ist wohl nicht. 🙂

    ich hab jetzt ne lösung, die ist zwar nicht schön aber selten und funktioniert...

    dennoch werde ich jetzt noch versuchen deine idee umzusetzen, da ich noch ein wenig zeit habe.



  • ###error### schrieb:

    haha ne ich habs geschafft den nächsten anfänger fehler zu produzieren

    for (int i....){
           for (int i.....) 
    }
    

    zweimal die gleiche variable ist wohl nicht. 🙂

    An sich schon, nur überdeckt das innere i das Äußere innerhalb der inneren for-Schleife.



  • haha ja, das hat dann nicht gepasst... und hat dann ins leere geschrieben 🙂

    also ich hab das jetzt hinbekommen, super sache.

    aber jetzt stehe ich schon wieder vor einer hürde,
    ich weiß nicht nach was ich da suchen soll oder wie das geht.

    Es werden ja .nsi Dateien erstellt die mit NSIS kompiliert werden. Normal geht man mit der rechten Maustaste auf die Datei und sagt dann mit NSIS kompilieren.

    Kann ich das irgendwie in meinem Programm machen. Ich google mir schon die Finger wund nur find ich dazu nix.

    Vielen Dank an euch alle ohne euch wäre ich komplett aufgeschmissen 🙂



  • ich denke dazu ist die funktion

    ShellExecute(NULL, "open", <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL);

    geeignet.

    aber ich weiß nicht wie ich der funktion die exe und die datei übergeben soll 😞



  • des teil macht mich verrückt

    string ToOpenProg = DirContainer[i];
    			ToOpenProg += string(+".nsi");
    
    			ShellExecute(NULL,TEXT("open"), ToOpenProg.c_str() ,TEXT(""),NULL,SW_SHOW);
    

    error C2664: 'ShellExecuteW': Konvertierung des Parameters 3 von 'const char *' in 'LPCWSTR' nicht möglich

    Das ist doch sicher wieder irgend ein trick den ich nciht kenn 😞

    kann ich dem programm eigentlich auch sagen, mit welcher externen anwendung er die datei öffnen soll? ich find in google dazu nix 😞



  • ###error### schrieb:

    error C2664: 'ShellExecuteW': Konvertierung des Parameters 3 von 'const char *' in 'LPCWSTR' nicht möglich

    Darum benutze ich keine WinAPI, diese komichen Typnen da. :p Ich glaube, der will einen const wchar_t* , also nicht sowas "abc" , sondern sowas L"abc"

    ###error### schrieb:

    kann ich dem programm eigentlich auch sagen, mit welcher externen anwendung er die datei öffnen soll? ich find in google dazu nix 😞

    Rechtklick - öffnen mit - immer das oder jenes? 😕



  • Es geht jetzt mit ShellExecuteA:

    ShellExecuteA(NULL,"open", ToOpenProg.c_str() ,"",NULL,SW_SHOW);
    

    out schrieb:

    ###error### schrieb:

    kann ich dem programm eigentlich auch sagen, mit welcher externen anwendung er die datei öffnen soll? ich find in google dazu nix 😞

    Rechtklick - öffnen mit - immer das oder jenes? 😕

    genau das mein ich.



  • ###errpr### schrieb:

    genau das mein ich.

    Wenn ich out nicht komplett falsch vertsanden habe, dann war das schon sein Lösungsvorschlag.
    Aber ich glaube ich versteh jetzt gar nichts mehr. Hast du nun das Problem mit Öffnen im externen Programm gelöst oder nicht?


Anmelden zum Antworten