Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Modificare file txt

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

Modificare file txt

Messaggioda DanieSS » ven nov 25, 2011 2:31 am

Salve a tutti,
ho un problema, al lavoro ho un lettore di codice a barre che mi genera un file txt nel formato
1234567890123;5
dove i primi caratteri sono il codice a barre mentre quello dopo il ; è la quantita..
il programma che devo usare invece esige un txt ma con un formato diverso, cioè le prime 35 cifre sono il codice a barre, le altre 9 sono le quantita,
posso elaborare il file con uno script, magari in bat, per trasformare il primo dato in
000000000000000000000012345678901235
se nella quantita non ho tutti e 9 caratteri non mi importa, mentre invece la prima modifica è necessaria..
Se ho bisogno di usare qualche linguaggio particolare chiedo se sara possibile poi far lanciare lo script da un .bat che lo esguirà e mandera il txt risultante dove serve?
Spero sappiate indicarmi la giusta direzione, specificando che non sono un programmatore ma uno che si arrangia, confido nella comunity
spero di sentire un vostro parere al piu presto..
Avatar utente
DanieSS
Neo Iscritto
Neo Iscritto
 
Messaggi: 10
Iscritto il: ven nov 25, 2011 2:21 am

Re: Modificare file txt

Messaggioda M@ttia » ven nov 25, 2011 4:10 am

Non ho ben capito se la lunghezza del codice a barre sia sempre 13 cifre come nell'esempio 1234567890123.
Assumendo di sì, puoi farlo con un vbscript: apri il blocco note e copia il codice seguente:
Codice: Seleziona tutto
Set objFS = CreateObject("Scripting.FileSystemObject")
strFile = objFS.BuildPath(Wscript.ScriptFullName & "\..", Wscript.Arguments(0))
Set objFile = objFS.OpenTextFile(strFile)

Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
   
    'Aggiungi 13 zeri all'inizio di ogni riga ed elimina il ;
    strLine = "0000000000000000000000" & strLine
    strline = Replace(strLine,";","")

    WScript.Echo strLine
Loop

Salvalo poi come Modificatore.vbs (attento che nella casella di salvataggio, in basso, sia selezionato "Tutti i tipi di File (*.*), sennò lo salva come Modificatore.vbs.txt).

Fatto questo copia lo script nella cartella dove hail il tuo file da modificare, e nel prompt dei comandi (navigando fino a quella cartella) digita:
Codice: Seleziona tutto
cscript /nologo Modificatore.vbs TuoFile.txt > FileModificato.txt
[^]
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: Modificare file txt

Messaggioda DanieSS » ven nov 25, 2011 9:46 am

Grazie per la risposta, e potrebbe essere una soluzione ma forse non ho ben capito..
Il codice risultante dalla modifica deve essre in totale 35 caratteri piu la quantita in fondo,
e dovrei prendere anche in considerazione che il codice a barre che vado a leggere potrebbe essere piu corto di 13 caratteri,o forse piu lungo.. non so se è possibile ma dovrei trasformare il formato del numero da 1234567890123 (x caratteridove x è maggiore di 0 ed al massimo ugale a 35) in uno da 35 caratteri riempindo i vuoti con qualsiasi carattere..
Avatar utente
DanieSS
Neo Iscritto
Neo Iscritto
 
Messaggi: 10
Iscritto il: ven nov 25, 2011 2:21 am


Re: Modificare file txt

Messaggioda DanieSS » ven nov 25, 2011 1:31 pm

Spero che questo silenzio non sia per l'impossibilita di fare questa cosa..
Per ora, facendo come mi ha suggerito @M@ttia, con solo la modifica della quantita di 0 nello script che ha creato lui, riesco ad avere il formato da me desiderato ma solo con i codici a barre di lunghezza 13 caratteri, si puo integrare nello script qualcosa per adttare anche i codici con meno caratteri?
Quindi se nel txt ci sono 1 caratteri allora aggiungere 22 0, se invece ci sono 5 caratteri aggiungere 30 zeri..
Avatar utente
DanieSS
Neo Iscritto
Neo Iscritto
 
Messaggi: 10
Iscritto il: ven nov 25, 2011 2:21 am

Re: Modificare file txt

Messaggioda M@ttia » ven nov 25, 2011 1:48 pm

Era appunto quello che chiedevo sopra (avevi fatto un solo esempio di lunghezza 13 e non sapevo se fosse valido per tutti o no).
Se la lunghezza del codice è variabile nel file originale, allora usa il codice qui sotto anziché quello sopra:
Codice: Seleziona tutto
Set objFS = CreateObject("Scripting.FileSystemObject")
strFile = objFS.BuildPath(Wscript.ScriptFullName & "\..", Wscript.Arguments(0))
Set objFile = objFS.OpenTextFile(strFile)

Do Until objFile.AtEndOfStream
  strLine = objFile.ReadLine
   
  'Aggiungi zeri all'inizio di ogni riga ed elimina il ;
  Do Until InStr(strLine,";")=36
    strLine = "0" & strLine
  Loop
  strLine = Replace(strLine,";","")

  WScript.Echo strLine
Loop
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: Modificare file txt

Messaggioda DanieSS » dom dic 04, 2011 11:08 pm

Scusate se non ho potuto rispondere velocemente ma è stata una settimana di fuoco..
Grande!! Grazie dell'aiuto, funziona a meraviglia..
Quindi se questo devo farlo eseguire da un file BAT basta che metto la stringa come la scrivo nel terminale nel corpo del mio BAT?
Avatar utente
DanieSS
Neo Iscritto
Neo Iscritto
 
Messaggi: 10
Iscritto il: ven nov 25, 2011 2:21 am

Re: Modificare file txt

Messaggioda M@ttia » lun dic 05, 2011 12:13 am

Beh questo è un file vbscript, eseguibile direttamente da terminale con quella sintassi. Se lo devi far partire da altre fonti (.bat nel tuo caso) basta sempre rispettare quella sintassi. Nel nostro caso sarà:

MioFile.bat
Codice: Seleziona tutto
@echo off
start C:\(...indirizzo...)\Modificatore.vbs TuoFile.txt > FileModificato.txt

(non sono sicuro che il /nologo sia passabile come comando, alla peggio nel FileModificato.txt dovrai eliminare le prime due righe...)
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti

cron
Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising