Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [C] domanda generale...

    scusate ma non sapevo mettere un titolo...

    se io voglio fare

    codice:
    printf("inserisci la destinazione:\n");
    des = getchat();
    
    l = fopen("PATHSCELTA\file.ext", "wb");
    for(i=0; i<506; i++) fprintf(l, "%c", link[i]);
    fclose(l);

    "des" è la destinazione che l'utente sceglie e sarà del tipo c:\marameo\.. ora, come faccio a dire di creare il file in c:\\marameo\\file.ext dopo il fopen ?

    qui ci sono 2 problemi : agiungere il doppio slash ( al max dico all'utente di metterlo ) e soprattuto rendere quel "patchscelta" dinamica a seconda del "des"... credo che sia semplice ma sui miei libri non trovo nulla e in rete men che meno !

  2. #2
    non ho capito quello che hai scritto...
    provo lo stesso ad interpretare:
    codice:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    main()
    {
        FILE *p;
        char path[100]="\0";
        printf("Inserisci il percorso assoluto del file da creare: "); // in questo caso non servono i doppi backslash, è sufficiente C:\Programmi\MioFile.txt
        scanf("%s", path);
        
        if( ! (p=fopen(path, "w")) )
        {
            printf("Impossibile creare il file indicato!!!\n\a");
            system("pause");
            return 1;
        }    
    
        printf("file creato con successo\n");    
        
        // scrivo quel che voglio nel file appena creato.
            
        fclose(p);
        
        system("pause");
        return 0;
    }
    ...Terrible warlords, good warlords, and an english song

  3. #3
    grazie per la risposta
    mh.. il mio problema è più in generale...

    ad esempio voglio creare una chiave nel reg... sò già che sarà ( i dati sono a caso )

    HKLM\\Software\\Microsoft\\Windows\\ /v prova /t REG_SZ /d \"c:\\windows\\*SCELTAUENTE*\" /f"

    ok, qundo farò una

    codice:
    printf("Inserisci il nome da dare al nome del file: "); //è solo un esempio..
    
    scanf("%s", nome);
    
    system("REG ADD HKLM\\Software\\Microsoft\\ /v prova /t REG_SZ /d \"c:\\windows\\*SCELTAUTENTE*\" /f"
    naturalmente se al posto di *SCELTAUTENTE* metto "nome" quello mi scrive la parola "nome" nella chiave e non quello che l'utente ha digitato..

    il mio problema è tutto li....rendere dinamico quel *SCELTAUTENTE*

  4. #4
    basta creare un path dinamico
    Hai bisogno di due stringhe, una statica (di colore blu)
    e una dinamica (di colore verde), e di una funzione
    che concateni il tutto... (includi <string.h>)
    codice:
    char path[120]="REG ADD HKLM\\Software\\Microsoft\\ /v prova /t REG_SZ /d \"c:\\windows\\", src[20]="\0";
    printf("Inserisci stringa: ");
    scanf("%s", src);
        
    strcat(path, src);
    strcat(path, "\" /f");
        
    printf("%s\n", path);
        
    // nel tuo caso, al posto di printf() metterai: 
    // system(path); // ed avrai "composto" un path dinamico
    ...Terrible warlords, good warlords, and an english song

  5. #5
    grazie mille, oh sommo programmatore :metallica

    oggi pomeriggio applico subito

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    non usare il comando esterno REG: non è presente
    su tutti i sistemi :-|

    testadimucca... mi potresti fare 1 favore se hai WinXP
    e hai SHUTDOWN.EXE sul sistema... se cell'hai ti spiego
    in privato se puoi.

    ciao.

  7. #7
    Originariamente inviato da $$$
    non usare il comando esterno REG: non è presente
    su tutti i sistemi :-|
    ma in xp e 9x c'è ?? o magari solo xp ? non ho un 9x sotto mano per testare..

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    c'è li dove è installato (dal resource-kit)!

  9. #9
    Ha ragione $$$
    per esempio in windows 9x il comando REG non esiste
    meglio utilizzare le API:

    codice:
    #include <windows.h>
    #include <stdio.h>
    
    int main()
    {
        HKEY hKey;
        DWORD dwDisposition;
        char szData[50]="C:\\mio_programma.exe";
        
        RegCreateKeyEx(
                       HKEY_LOCAL_MACHINE, 
                       "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 
                       0, 
                       NULL, 
                       0, 
                       KEY_ALL_ACCESS, 
                       NULL, 
                       &hKey, 
                       &dwDisposition
                       );
        RegSetValueEx(
                       hKey, 
                       "nuovo_valore_stringa", 
                       0, 
                       REG_SZ, 
                       (LPBYTE)szData, 
                       sizeof(szData)
                      );
        RegCloseKey(hKey);
     
        system("PAUSE");
    
        return 0;
    
    }
    adatta questo codice al codice postato sopra.

    p.s. CurrentVersion va unito
    ...Terrible warlords, good warlords, and an english song

  10. #10
    Vi voglio sempre più bene

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.