[Lettura file binario] 2nd...per favore potete consigliarmi/aiutarmi ?...

venerdì 24 giugno 2011 - 07.56
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  Visual Studio 2005

Zan Profilo | Newbie

Buongiorno,
vengo al punto, anche se temo già la risposta (negativa).
Ho la necessità di leggere (non visualizzare) un file di Autodesk Inventor per poter trovare al suo interno una lista di nomi di files(caricando il file in notepad si vedono).

Mi spiego meglio, il file in oggetto è un che "descrive" come e quali files sono da unire per ottenere un determinato disegno di assieme (l'unione di più disegni).
Detto questo mi piacerebbe sapere come potrei "indagare" al suo interno per ottenere l'elenco di questi.
Ho allegato un file di esempio (prova.iam).
Al suo interno ci dovrebbe essere un elenco di files .ipt, tipo :
-Rondella.ipt
-Premi asta S2.ipt
etc.....

E' possibile fare questo ?

grazie mille a tutti
R.Zanni
PS
...sono ben accettati anche piccoli esempi di codice...:)

whiteflash Profilo | Junior Member

hai la composizione della struttura di byte del file in quetione? che ti segna gli header, e le posizioni dei vari dati immagazzinati?

oppure potresti leggere il file come testo e utilizzare un regex.Match .. impostando un'espressione che ti trova tutte le stringhe
che iniziano con "\" e finiscono con ".ipt"
poi per ogni risultato siccome gli spazi sono doppi e tripli
fai un replace degli spazi a 1 spazio sempre con regex


--------------------------------------
My world is VB.NET 2010 and WPF

Zan Profilo | Newbie

grazie per la risposta, purtroppo non ho il tracciato.....
ho provato (il codice è sotto) ma non riesco a far "apparire" i testi dei files per poi ricercarli, cosa che con un banale Notepad riesco a vedere......
Hai suggerimenti ? sono in una palude..........

Grazie mille


'LEGGO IL FILE E AGGIUNGO LE RIGHE ALLA LISTBOX
Dim i As Integer = 0
Dim Reader As System.IO.StreamReader
Reader = New System.IO.StreamReader(Application.StartupPath & "\prova.iam", System.Text.Encoding.Default)

'LEGGO IL FILE E SALVO OGNI LINEA NELL'ARRAY LINES
While Not Reader.EndOfStream
ListBox1.Items.Add(Reader.ReadLine()) 'tanto per visualizzarlo...
End While

Reader.Close()
Reader.Dispose()

whiteflash Profilo | Junior Member

per curiosità ho fatto un pò di prove ma non ho ottenuto la lettura del file come la fa notepad
e non riesco a capire il motivo...

secondo me c'è un problema nella codifica del file, notepad una l'ANSI e impostando "Encoding.Default"
vbnet capisce che deve utilizzare la codifica ansi ma non si ottiene lo stesso risultato..
questo è il codice che utilizzo io

Dim Contenuto As Object = ""
Dim line As Object = ""
Dim stream_reader = New IO.StreamReader(AppDomain.CurrentDomain.BaseDirectory & "\prova.iam", Encoding.Default)
line = stream_reader.ReadLine
Do While Not (line Is Nothing)
TextBox1.Text &= line
line = stream_reader.ReadLine()
Loop
stream_reader.Close()
--------------------------------------
My world is VB.NET 2010 and WPF

Zan Profilo | Newbie

ciao,
al momento ho rispolto così :

TextBox1.Visible = False
Dim B(15) As Byte
Dim I As Integer
Do
Dim strChrDisplay As New StringBuilder()
For I = 0 To FS.Read(B, 0, 16) - 1
strChrDisplay.Append(IIf(B(I) > 31 And B(I) < 128, Chr(B(I)), "."))
Next
TextBox1.AppendText(strChrDisplay.ToString)
Loop Until I < 16
FS.Close()
TextBox1.Visible = True
TextBox1.ScrollBars = ScrollBars.Vertical

fammi sapere, se vuoi, cosa ne pensi e se ti vengono in mente idee migliori

Grazie e saluti
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5