Προς το περιεχόμενο

Τιμές Απο Αρχείο Σε Array Πίνακα(Visual Basic)


Paytor

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα!

Εχω ενα πρόβλημα. Θέλω να πάρω τιμές απο ενα αρχείο και να τις αποθηκεύσω σε έναν πίνακα(array). Οι τιμές στο αρχείο (txt) είναι τιμές απο τα πίξελ μιας grayscale (200*200 πιξελ) εικόνας απο 0-255. Οταν παίρνω συγκεκριμένο αριθμό τιμών με μια for ολα πηγαίνουν καλά, αλλα οταν θέλω να πάρω όλες τις τιμές μέχρι το τέλος του αρχείου (EOF) δεν δουλεύει. Μου βγάζει μηνύματα Overflow. Καμία ιδέα που οφείλεται αυτο? Η μήπως κανένα παράδειγμα κώδικα να με βοηθήσει?

Ευχαριστώ!

 

Ξέχασα να αναφέρω οτι πρόκειται για Visual Basic 6 προγραμματισμό!

Δημοσ.

Πειραματίσου καταρχάς βάζοντας την EOF είτε στο τέλος είτε στην αρχή της do και σκέψου κάποια if που θα προλαβαίνει πριν προκληθεί σφάλμα π.χ.

if τάδε = 0 then exit do, εάν φέρεις και εδώ τον κώδικά μαζί με ένα txt για να πειραματιστώ και εγώ θα το ψάξω καλήτερα.

Δημοσ.

Καλησπέρα

 

Εγώ θα σου πρότεινα να μην δουλέψεις με αρχείο, αλλά με την μνήμη. Δηλαδη, αντί να διαβάζεις ένα-ένα τα bytes του αρχείου, φόρτωσε το αρχείο σε μια μεταβλητή τύπου string και δούλεψε από εκεί:

 

Dim fArray() As Byte

Dim mFile As String

 

Open "C:\123.txt" For Binary As #1

ReDim fArray(LOF(1) - 1) As Byte

Get #1, 1, fArray()

Close #1

mFile = StrConv(fArray(), vbUnicode)

Erase fArray()

 

Με αυτό τον τρόπο, όλο το αρχείο "123.txt" είναι αποθηκευμένο στην μεταβλητή mFile...

 

Φιλικά,

Pavel

Δημοσ.

Χρησιμοποιώ πίνακα γιατί οι τιμές που θα βάλω σε αυτόν θα αποθηκευτούν στην βάση δεδομένων. Απο μεταβλητή δεν ξέρω πως γίνεται. Θα το δοκιμάσω πάντως! Θα βγάλω τον κώδικα μόλις τελειώσω και δεν ξέρω τι άλλο να κάνω για να δουλέψει!

Δημοσ.

Des an to arxeio sou exei mia kenh grammh sto telos. Afto dhmiourgei provlimata.

Epishs skepsou na xrhsimopoihseis File System Objects (Scripting Runtime).

8a se volepsoun ama doulebeis me arxeia.

Δημοσ.

Αυτο είναι μια απο τις προσπάθειες που έκανα. Βγάζει σφάλμα όμως! Δείτε τον κώδικα και αν υπάρχει (που σίγουρα υπάρχει) καμία ιδέα για διόρθωση θα περιμένω την απαντησή σας. Θέλω να διαβάσω όλο το αρχείο, να αποθηκέυσω τις τιμές σε πίνακα (που θα περάσω στην βάση"δεν το αναφέρω στον κώδικα") και για επιβεβαίωση να γράψω τις τιμές απο τον πίνακα σε αρχείο(για να σω αν όντως τις αντέγραψε)!

 

Dim fn As Integer

Dim data()

fn = FreeFile

Open "C:\data.txt" For Input As #fn

Do Until EOF(fn)

Input #fn, data()

Loop

Close #fn

End If

fn = FreeFile

Open "C:\PicValues.txt" For Output As #fn

Do Until EOF(fn)

Print #fn, data()-> type mismatch

Loop

Close #fn

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...