Aiuto su un problema

ti ringrazio so che il tempo è prezioso e capisco che dover perdere
tempo con me non è proprio il massimo … ti ringrazio

scusami ma l’esempio non mi è chiaro ho bisogno di capirlo in un
contesto in cui trovo un riscontro logico anche so che è corretto il tuo
esempio io purtroppo nn capisco… mi sembrano cose astratte … questo
è il mio caso potresti farmi un esempio con questo codice

Lascia stare i klingon :slight_smile:

Piuttosto guarda questo errore:

qnt_rimasta = carica_quantita_rimasta(0, 0)

def carica_quantita_rimasta(indice_prodotto)
qnt = ‘qnt_rimasta’ + indice_reparto.to_s + ‘_’ + indice_prodotto.to_s

  • ‘.txt’

if File.exists?(qnt)
quantita = File.read(qnt).to_i
else
quantita = 100
File.write(qnt, quantita_rimasta)
end
quantita
end

Stai passando 2 parametri ad una funzione con un solo parametro.

Se vuoi passargli un Array dovresti fare:

qnt_rimasta = carica_quantita_rimasta([0, 0])

Forse questo risolve i tuoi dubbi sugli arrai come parametri?

Ciao

P.S; torno al lavoro e non ripondo oltre sorry :slight_smile:

Francesco tranquillo, a chiedere non sbagli mai :slight_smile:

Maurizio De Santis

Il giorno 20 marzo 2015 14:57, Davide R.
[email protected]
ha scritto:

A volte (spesso) invece io sbaglio le riposte e gli esempi

:slight_smile:

sto riscontrando tanti problemi usando gli array e le funzioni, ma per
oggi stacco la spina sono stanco e anche frustrato perche da stamattina
non riesco a capire una cosa cosi elementare ma davvero importante

anche modificando con
qnt_rimasta = carica_quantita_rimasta([0, 0])

l’errore non cambia a parte quello è qlks altro a causarlo ed sarà cosi
banale eppure non riesco a capire

Problema risolto con le funzioni ma non riesco a far salvare i file
delle quantita rimaste in cartelle diverse per esempio : le quantita
rimaste cemento,calce etc… li devo far salvare nella cartella ‘sacchi’
ma scrivendo :

if File.exists?(qnt0)
cemento = File.read(sacchi’cemento.txt’).to_i
else
cemento = 100
File.write(qnt0, cemento)
end

il programma non va a leggere il file nella cartella sacchi ma
ovviamente genera nuovamente il file

File.read(sacchi’cemento.txt’)

Non una sintassi corretta in Ruby (a meno che sacchi sia un metodo e
‘cemento.txt’ un argomento, ma non credo), sei sicuro il codice che hai
postato funzioni?

Maurizio De Santis

Il giorno 23 marzo 2015 21:28, Francesco V.
[email protected]
ha scritto:

no non va… sto provando come mi hai suggerito def sacchi (cemento)

Fammi capire questo codice che hai scirtto:

if File.exists?(qnt0)

^^^^^^^^^^ il metodo exists? prende come argomento un path a un file

che cosa contiene qnt0 ?

cemento = File.read(sacchi’cemento.txt’).to_i

^^^^^^^^^^ questa riga sicuramente sbagliata per quanto gi detto

immagino che tu volessi dire File.read('sacchi/cemento.txt')

visto che parli della cartella sacchi
else
cemento = 100
File.write(qnt0, cemento)
end

2015-03-23 21:28 GMT+01:00 Francesco V. [email protected]:

questo è il codice

qnt0 = ‘cemento.txt’

if File.exists?(qnt0)
cemento = File.read(‘cemento.txt’).to_i
else
cemento = 100
File.write(qnt0, cemento)
end

prod0 = ‘cemento’
prez0 = 4.00

continua_ciclo = true
totale = 0

while continua_ciclo

puts ’ ’

puts ‘Inserire prodotto da ricercare :’.center(amp + 50)

puts ’ ’

scelta = gets.chomp
if scelta == ‘totale’
continua_ciclo = false

elsif scelta == prod0
puts ‘cad.’.center(amp - 10) + prez0.to_s + ’ $’
puts ’ ’
puts 'Quantita disponibile in magazzino: ’ + cemento.to_s
puts ’ ’
print 'Inserire quantita richiesta: ’
qnt_ric = gets.chomp.to_i
somma0 = (prez0 * qnt_ric).to_f
puts 'TOTALE: ‘.center(amp + 10) + somma0.to_s + ’ $’
cemento = cemento - qnt_ric
puts 'Quantita rimasta: ’ + cemento.to_s
puts ’ ’

else
puts ’ ’
puts ‘Prodotto non presente.’
puts ’ ’
end
end

totale = somma0.to_f

puts ’ ’
puts 'SUBTOTALE: ‘.center(amp + 10 ) + totale.to_s + ’ $’

File.write(qnt0, cemento)

ho risolto grazie per i tuoi preziosi consigli, ho molte lacune nella
sintassi ma grazie a voi sto imparando

Nelle prime righe del file farei un controllo per vedere se la
directory ‘sacchi’ esiste. Se non esiste gi la crei. E poi ogni volta
che devi leggere o scrivere un file devi specificare il percorso
rispetto alla directory locale.

Es. File.read(‘sacchi/cemento.txt’) o File.write(‘sacchi/cemento.txt’)

Altrimenti come pensi che il software sappia che vuoi usare una
directory ‘sacchi’, se non lo specifichi da nessuna parte?
Prima pensa a farlo funzionare cos, poi penserai a come rimuovere la
ridondanza usando delle funzioni.

On Tue, Mar 24, 2015 at 6:20 PM, Francesco V.

fino ad ora ho avuto la necessita di creare manualmente le cartelle dove
salvare i file ma se volessi creare una cartella quale sarebbe il
codice?

Puoi usare Dir.mkdir

Il giorno ven 27 mar 2015 18:40 Francesco V.
[email protected]
ha scritto:

Non era FileUtils.mkdir ?
On Mar 28, 2015 1:33 AM, “Maurizio De Santis”
[email protected]

Pure, ma con l’altro fa una require in meno :slight_smile:

Il giorno sab 28 mar 2015 09:37 maurizio de magnis <
[email protected]> ha scritto:

quindi per esempio per creare la cartella documenti

Dir.mkdir ‘documenti’ ?

per verificare se esiste quindi

if Dir.exists?(documenti)

Esattamente :slight_smile:

Il giorno sab 28 mar 2015 20:01 Francesco V.
[email protected]
ha scritto: