PDA

Visualizza la versione completa : [ C ] istruzione system(); e visualizzazione file di una cartella


Entropic666
08-01-2005, 02:56
[ C ] istruzione system(); e visualizzazione file di una cartella

Ciao e buon anno nuovo a tutti !!!

Iniziamo subito questo 2005 con 2 belle questioni:

1)
sappiamo che l'istruzione system( "c:\\windows\\media\\tada.wav" ); mi apre il file tada.wav ; ma quali sono tutte le altre applicazioni possibili di system( ".........." ); ? Potreste elencarmele o magari darmi qualche indirizzo utile ?

2)
cerco da tempo un' istruzione affinché il mio programma mi visualizzi tutti i file di una cartella (l'intento sarebbe quello di emulare la famosa istruzione DIR del vecchio dos) ma fino ad adesso ho trovato solo listati non compilabili dal mio DEV-C++4.9.9.0 !

Grazie anticipatamente a chiunque mi risponderà
un saluto dal vostro Entropic666 - Il sito di Entropic666 (http://xoomer.virgilio.it/entropic_666)

DYNAM!C+
08-01-2005, 03:07
ma...

system( "DIR" );




no? eh? :fagiano:


se ho ben capito vuoi il codice C di DIR esatto?
x windows?

Johnny_Depp
08-01-2005, 06:49
con system() puoi chiamare tutti i "comandi" del prompt (o della console/piattaforma che stai utilizzando)...

prova ad esempio ad utilizzare la guida in linea di windows [muose sul desktop + F1] e digita: DIR per visualizzare come si utilizza l'istruzione DOS: DIR

Una volta appreso (tramite guida in linea: F1) come si utilizza
il comando in DOS/PROMPT... lo inserisci in una routine C/C++ tramite la funzione specifica: system()

n.b. idem per tutte le altre istruzioni DOS/PROMPT...

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *p;
char c;

/*
legge tutti i file (solo file) della directory corrente
e li scrive all'interno di un file di testo
temporaneo/fittizio creato appositamente.
*/
system("DIR .\\ /o/b/a:-d > tmp.txt");

/* leggo il file temporaneo e stampo tutto a video */
p = fopen(".\\tmp.txt", "r");

while(!feof(p))
{
fread(&c, sizeof(char), sizeof(char), p);
printf("%c", c);
}

fclose(p);
system("pause");

return 0;
}
P.S. non ho capito la tipologia del thread titolo/SONDAGGIO :confused:

Entropic666
08-01-2005, 22:01
Innazitutto grazie Johnny_Depp e grazie DYNAM!C+ per le risposte ! :D :D :D

oggi ho fatto un pò di pratica , tutto è andato bene ma prima di cena mi è sorta una domanda nuova :confused: :confused: :confused: :

come strutturare un'istruzione che mi elenchi cartelle, sottocartelle e loro relativi files ? (DIR mi elenca cartelle e files solo nella cartella in cui compilo). :messner: :messner:


grazie sempre e ciao!!

internet
09-01-2005, 00:05
Originariamente inviato da Entropic666
Innazitutto grazie Johnny_Depp e grazie DYNAM!C+ per le risposte ! :D :D :D

oggi ho fatto un pò di pratica , tutto è andato bene ma prima di cena mi è sorta una domanda nuova :confused: :confused: :confused: :

come strutturare un'istruzione che mi elenchi cartelle, sottocartelle e loro relativi files ? (DIR mi elenca cartelle e files solo nella cartella in cui compilo). :messner: :messner:


grazie sempre e ciao!!

Su win32 si usa FindFirstFile() / FindNextFile()
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/listing_the_files_in_a_directory.asp

Su ambienti *nix, cygwin etc...
opendir() / readdir()
http://www.siit.tu.ac.th/mdailey/class/2003_s2/its225/assignments/readdir.c

siccome usi DEV-C++, che si basa su gcc*, dovrebbe compilare anche l'esempio readdir.c

*in gcc x win le funzioni opendir() / readdir(), richiamano FindFirstFile() / FindNextFile()

il fatto che si usino 2 funzioni diverse dipende dal fatto che in ANSI C non è previsto il concetto di directory, quindi ci si deve appoggiare a librerie non standard.

DYNAM!C+
09-01-2005, 01:51
se ti interessa l'algorimo ricorsivo x la ricerca/visualizzazione
files data una dir di base.... posta :)

Loading