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

Discussione: [C] creazione file

  1. #1
    Utente di HTML.it L'avatar di Radio
    Registrato dal
    Mar 2002
    Messaggi
    2,966

    [C] creazione file

    Salve!

    Avrei bisogno di questa cosa:
    Un codice in C che mi crei un file per esempio 0001.ext e poi dopo un file 0001.ext. capito come?

    invece che una scuccessione di numeri N+1, il nome del file deve essere +1!

    è possibile?

    e poi: posso definire io la grandezza del file che voglio che sia creato??

    Grazie!

  2. #2
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    non ho capito niente.
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  3. #3
    Utente di HTML.it L'avatar di Radio
    Registrato dal
    Mar 2002
    Messaggi
    2,966
    allora:

    main
    {
    crea un file di nome "00001.ext"
    ora fai 00001+1
    crea il file di nome "00002.ext"
    }

    capito?

    se magari fosse possibile

    main
    {
    crea un file di nome "00001.ext" di dimensione 500K
    ora fai 00001+1
    crea il file di nome "00002.ext" di dimensione 500K
    }

    sono stato spiegato?

  4. #4
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    se il tuo problema è la trasformazione da int a stringa formattata questo il tuo codice

    codice:
     int i;
     char nomefile[20];
    
     i=1;
    
     sprintf(nomefile,"%04d.ext",i);
    
     // ora nomefile contiene la stringa "0001.ext"
     // open(nomefile,....
    
     i=2;
     sprintf(nomefile,"%04d.ext",i);
     // ora nomefile contiene la stringa "0002.ext"
     // open(nomefile,....
    
     }
    sprintf funziona come printf solo che invece di scrivere su standard output scrive su una stringa. La formattazione %04d significa trasforma l'intero in stringa, il numero deve essere preceduto da un numero di 0 tali che il tutto sia di 4 caratteri:
    1 -> 0001
    2 -> 0002
    12 -> 0012
    156-> 0156
    etc...


    non puoi creare un file di una certa dimensione a meno che tu non ci scriva dentro la quantità di dati che ti serve.
    A priori creare un file di 500k non vuole dire niente. Cosa ci devi scrivere dentro?
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  5. #5
    Utente di HTML.it L'avatar di Radio
    Registrato dal
    Mar 2002
    Messaggi
    2,966
    lascia stare i 500 k....

    allora: e se volesso che questo files venisse memorizzato in una cartella che dico io dentro nel codice? per esempio
    c:/windows/desktop

    Grazie!

  6. #6
    Utente di HTML.it L'avatar di Radio
    Registrato dal
    Mar 2002
    Messaggi
    2,966
    codice:
    int i;
     char nomefile[20];
    
     i=1;
    
     sprintf(nomefile,"%04d.ext",i);
    
     // ora nomefile contiene la stringa "0001.ext"
     // open(nomefile,....
    
     i=2;
     sprintf(nomefile,"%04d.ext",i);
     // ora nomefile contiene la stringa "0002.ext"
     // open(nomefile,....
    
     }
    i=1 me lo da come errore quando lo compilo

  7. #7
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    codice:
    sprintf(nomefile,"c:\\windows\\desktop\\%04d.ext",i);

    per sicurezza se inserisci anche il path aumenta la dimensione dell'array di caratteri

    codice:
    char nomefile[80];
    difficile che ti dia errore per i=1...
    che errore ti da?
    hai inserito tutti ";"?
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  8. #8
    Utente di HTML.it L'avatar di Radio
    Registrato dal
    Mar 2002
    Messaggi
    2,966
    fai tutto il codice con int, main, librerie e tutto...

  9. #9
    Utente di HTML.it L'avatar di Radio
    Registrato dal
    Mar 2002
    Messaggi
    2,966
    no, ora va!!

    ma non mi crea nessun file

  10. #10
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    scusa ma un minimo sai programmare i C???
    è ovvio che io ti ho dato la traccia... come vedi la open è nel commento e non è neanche completa... pensavo di doverti dare solo un aiuto...

    codice:
    #include <stdio.h>
    #include <fcntl.h>
    
    main()
    {
    
     int i,fd;
     char nomefile[20];
     char path[80]="c:\\windows\\desktop\\";
    
     i=1;
     sprintf(nomefile,"%s%04d.ext",path,i);
     fd=open(nomefile,O_CREAT);
     // ora puoi scrivere nel file
     close(fd);
     
     i=2;
     sprintf(nomefile,"%s%04d.ext",path,i);
     fd=open(nomefile,O_CREAT);
     // ora puoi scrivere nel file
     close(fd);
    
    }
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.