PDA

Visualizza la versione completa : [C++] Prendere parte di una stringa e ricerca file


borelg
09-12-2008, 18:07
Ciao a tutti ho di nuovo bisogno di aiuto... abbiate pazienza ma sto iniziando a imparare con tt gli insegnamenti che mi state dando, coprattutto oregon che ormai mi odia... :D
Comunque ciò che vorrei fare io sarebbe questo:
DOMANDA 1:
da una array di caratteri per esempio:

char stringa [250] = "ciao a tutti come state??"
prendere una parte per esempio "tutti come" e salvarla in 1 altro array avendo così in output se la stampo:

tutti come

come faccio? ho sentito parlare della funzione Tokenize, ma nell' ambito di visual c non so se esiste anche per il c++....


DOMANDA 2:
Esiste una funzione analoga a quella del linguaggio batch che mi permette di cercare un file all' interno di una cartella e se c' è fare una determinata azione?

grazie mille in anticipo

oregon
09-12-2008, 18:52
Originariamente inviato da borelg
Ciao a tutti ho di nuovo bisogno di aiuto... abbiate pazienza ma sto iniziando a imparare con tt gli insegnamenti che mi state dando, coprattutto oregon che ormai mi odia... :D

Beh ... insomma, non ti odio, ma diciamo che non ti amo ... :)


DOMANDA 1:

Questo e' C ... basta utilizzare i puntatori ma bisogna capire come arrivare alla parte che desideri ... nell'esempio c'e' "ciao a " prima di quello che ti serve, ma e' sempre cosi'?


DOMANDA 2:
La gestione del file system (cartelle e file) e' molto dipendente dal sistema operativo con cui operi perche' il C/C++ non hanno questa "cognizione". Devi quindi usare le chiamate alle API specifiche del SO che usi.

borelg
09-12-2008, 19:24
Questo e' C ... basta utilizzare i puntatori ma bisogna capire come arrivare alla parte che desideri ... nell'esempio c'e' "ciao a " prima di quello che ti serve, ma e' sempre cosi'?
Non non è sempre così però la stringa è organizzata in questo modo:


bla bla bla bla bla 'Parte che mi interessa' bla bla bla bla bla

quindi come avrai capito mi interessa tenere solo la parte che mi interessa :confused:


La gestione del file system (cartelle e file) e' molto dipendente dal sistema operativo con cui operi perche' il C/C++ non hanno questa "cognizione". Devi quindi usare le chiamate alle API specifiche del SO che usi.

Io uso Xp comunque ho scoperto 1 nuova funzione:

system (cerca.bat);
potrei creare quello che voglio in linguaggio batch, poi farlo eseguire ma poi come faccio a dare in input al mio programma se la ricerca è risultata positiva o negativa? Io avevo pensato di fare scrivere al programma in batch su un file txt tipo 1 se risulta positiva e 0 se negativa, poi con getline dal mio programma in c++ prendere quel carattere e se è = a 1 fare una cosa, se no 1 altra... cosa ne dici?
Il problema a fare questo è che io non so programma re in batch :D ...
grazie mille... come farei senza di te?

oregon
09-12-2008, 19:27
Allora dovrai cercare la stringa che ti interessa all'interno della stringa completa ... lo puoi fare con la funzione

strstr()
http://www.cplusplus.com/reference/clibrary/cstring/strstr.html

(c'e' tutto ... non mi chiedere un esempio di codice ...)

Per il resto, e' assurdo chiamare un batch dal C/C++ ... utilizza le funzioni apposite del sistema operativo e scrivi il codice opportuno (di cui potrai trovare esempi, piu' o meno completi, su internet ...)

borelg
09-12-2008, 19:32
Ma la parte che mi interessa cambia ogni volta e io non so come diventa... Per quello se no se la conoscessi gia non avrebbe senso prendere un pezzo basterebbe assegnare a quella stringa la frase ricorrente... Comunque non so se può essere d' aiuto ma io consco sempre la parte che non mi interessa, sia quella prima che quella dopo la parte che mi interessa, quindi non se, è possibile fare tipo 1 sottrazione di stringhe?
grazie

edit: per quanto riguarda la ricerca ho trovato questo: http://msdn.microsoft.com/en-us/library/aa364418.aspx
ma non ci ho capito nulla... :jam: :dhò: mi daresti 1 aiutino per favore?

oregon
09-12-2008, 19:45
Puoi usare sempre la strstr per cercare la stringa che conosci ... se fai un esempio pratico della stringa, si capisce meglio ...

Per la ricerca, se continui a vedere in quella pagina, c'e' un link per un esempio

http://msdn.microsoft.com/en-us/library/aa365200(VS.85).aspx

... cosa vuoi di piu'?

borelg
09-12-2008, 20:04
ecco pronto un esempio:

Gianni stava andando ' a casa ' quando incontrò un suo amico
Gianni stava andando ' a scuola ' quando incontrò un suo amico
ecc....
Hai capito no il meccanismo?


Per la ricerca, se continui a vedere in quella pagina, c'e' un link per un esempio http://msdn.microsoft.com/en-us/lib...200(VS.85).aspx ... cosa vuoi di piu'?

Sono proprio quegli esempi che mi hanno confuso le idee non so proprio da dove iniziare perchè non riesco a capirli... è questo il problema... Non c' è un esempio + semplice? :cry:
grazie

oregon
09-12-2008, 21:28
Originariamente inviato da borelg
...

Quindi sai con certezza che la prima stringa da escludere e'

Gianni stava andando

e la seconda e'

quando incontrò un suo amico

Quindi, cerca con la strstr() la prima stringa e la seconda ...



Sono proprio quegli esempi che mi hanno confuso le idee non so proprio da dove iniziare perchè non riesco a capirli... è questo il problema... Non c' è un esempio + semplice? :cry:


Quell'esempio e' semplice ... forse, per le tue conoscenze attuali, e' un compito un po' troppo complesso ...

borelg
10-12-2008, 10:26
ok ci ho ragionato un po e ho capito quasi tutto, solo non ho capito dove dovrei mettere il nome del file che vorrei cercare...
Comunque è sorto un nuovo problema: io uso dev c++ 4.4.9 e mi dice che manca strsafe.h come faccio? dove la trovo?

edit: ok ho capito adesso quel programma ti fa un elenco dei file nella cartella.... Solo non ho capito dove viene salvato il nome dei file...
grazie ancora

borelg
10-12-2008, 16:36
Per favore Oregon aiutami mi manca solo questo pezzo per finire il programma!!
grazie in anticipo!

Loading