Paytor Δημοσ. 9 Νοεμβρίου 2006 Δημοσ. 9 Νοεμβρίου 2006 Καλησπέρα! Εχω ενα πρόβλημα. Θέλω να πάρω τιμές απο ενα αρχείο και να τις αποθηκεύσω σε έναν πίνακα(array). Οι τιμές στο αρχείο (txt) είναι τιμές απο τα πίξελ μιας grayscale (200*200 πιξελ) εικόνας απο 0-255. Οταν παίρνω συγκεκριμένο αριθμό τιμών με μια for ολα πηγαίνουν καλά, αλλα οταν θέλω να πάρω όλες τις τιμές μέχρι το τέλος του αρχείου (EOF) δεν δουλεύει. Μου βγάζει μηνύματα Overflow. Καμία ιδέα που οφείλεται αυτο? Η μήπως κανένα παράδειγμα κώδικα να με βοηθήσει? Ευχαριστώ! Ξέχασα να αναφέρω οτι πρόκειται για Visual Basic 6 προγραμματισμό!
lefi Δημοσ. 9 Νοεμβρίου 2006 Δημοσ. 9 Νοεμβρίου 2006 Πειραματίσου καταρχάς βάζοντας την EOF είτε στο τέλος είτε στην αρχή της do και σκέψου κάποια if που θα προλαβαίνει πριν προκληθεί σφάλμα π.χ. if τάδε = 0 then exit do, εάν φέρεις και εδώ τον κώδικά μαζί με ένα txt για να πειραματιστώ και εγώ θα το ψάξω καλήτερα.
Paytor Δημοσ. 11 Νοεμβρίου 2006 Μέλος Δημοσ. 11 Νοεμβρίου 2006 Εντάξει οταν τελειώσω αυτο που προσπαθώ να κάνω θα το κάνω post εδώ!
PavelX Δημοσ. 11 Νοεμβρίου 2006 Δημοσ. 11 Νοεμβρίου 2006 Καλησπέρα Εγώ θα σου πρότεινα να μην δουλέψεις με αρχείο, αλλά με την μνήμη. Δηλαδη, αντί να διαβάζεις ένα-ένα τα 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
StavrosD Δημοσ. 11 Νοεμβρίου 2006 Δημοσ. 11 Νοεμβρίου 2006 Περίεργο. Δοκίμασες while ...<>EOF και σου βγάζει error;
Paytor Δημοσ. 12 Νοεμβρίου 2006 Μέλος Δημοσ. 12 Νοεμβρίου 2006 Χρησιμοποιώ πίνακα γιατί οι τιμές που θα βάλω σε αυτόν θα αποθηκευτούν στην βάση δεδομένων. Απο μεταβλητή δεν ξέρω πως γίνεται. Θα το δοκιμάσω πάντως! Θα βγάλω τον κώδικα μόλις τελειώσω και δεν ξέρω τι άλλο να κάνω για να δουλέψει!
kostas_crete Δημοσ. 12 Νοεμβρίου 2006 Δημοσ. 12 Νοεμβρίου 2006 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.
Paytor Δημοσ. 12 Νοεμβρίου 2006 Μέλος Δημοσ. 12 Νοεμβρίου 2006 Αυτο είναι μια απο τις προσπάθειες που έκανα. Βγάζει σφάλμα όμως! Δείτε τον κώδικα και αν υπάρχει (που σίγουρα υπάρχει) καμία ιδέα για διόρθωση θα περιμένω την απαντησή σας. Θέλω να διαβάσω όλο το αρχείο, να αποθηκέυσω τις τιμές σε πίνακα (που θα περάσω στην βάση"δεν το αναφέρω στον κώδικα") και για επιβεβαίωση να γράψω τις τιμές απο τον πίνακα σε αρχείο(για να σω αν όντως τις αντέγραψε)! 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
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.