Jump to content



Visual Basic 2008 Ερωτήσεις(Εισαγωγή ,εξαγωγή αρχείων)


rafail1994

Recommended Posts

Καλησπέρα στο forum.:fun:

Έχει εδώ και καμιά εβδομάδα που έχω φάει κόλλημα με μια εντολή που θέλω να βάλω σε ένα πρόγραμμα που φτιάχνω.

Για να μπούμε στο ψητό.

Έχω αυτήν την φόρμα που είναι μια φόρμα καταχώρισης δεδομένων σε ένα listview που υπάρχει στην main φόρμα οπού επίσης εξάγει τα δεδομένα σε ένα αρχείο με όνομα το όνομα του επωνύμου που έχω στο πρώτο textbox.

post-16541-1416075201,8068_thumb.png

Τώρα εδώ που έχω το πρόβλημα. Αυτή είναι μια άλλη φόρμα που αντλεί τα δεδομένα από το αρχείο που έχω αποθηκεύσει πριν με το όνομα του επωνύμου που το βρίσκει από το πρώτο Columns του listview. Αυτό που θέλω είναι όταν παταω αποθήκευση και κλείσιμο να αποθηκεύει τα δεδομένα που έχω προσθέσει (στα κενά η στα υπάρχον textbox) στο ιδιο αρχείο με το όνομα του επωνύμου που έχω ανοίξει πριν .

post-16541-1416075202,0565_thumb.png

Υπάρχει τρόπος να το κάνω ;

Δοκίμασα με τα lines άλλα έγινε ένας χαμός αφού έπρεπε να αλλάξω όλες της εντολές αποθήκευσης.

Ευχαριστώ εκ τον προτέρων όλα τα παιδιά που θα ασχοληθούν :T:

Link to comment
Share on other sites

Χμμ :p.

Για να το κάνω λίγο ποιο αναλυτικά.

Εδω έχουμε την αρχική φόρμα με το listview που είπα και στο πρώτο ποστ.

post-16541-1416075202,0782_thumb.png

Αυτή εδω είναι η φόρμα καταχώρισης των δεδομένων στην αρχική φόρμα στο listview και σε ένα αρχείο με το όνομα του βάζω στο textbox 1(Δηλαδή δημιουργήστε και ένα αρχείο.Kαι το όνομα του αρχείου είναι το δεδομένο που βάζω στο textbox1).

post-16541-1416075202,1854_thumb.png

post-16541-1416075202,2069_thumb.png

Εγώ τώρα θέλω να μπορώ να κάνω και διόρθωση αυτά τα δεδομένα που έχω βάλει στο listview και που τα έχω αποθηκεύσει και στο αρχείο που είπα παραπάνω.

post-16541-1416075202,2283_thumb.png

post-16541-1416075202,2528_thumb.png

Και αυτή είναι η φόρμα διόρθωσης των δεδομένων.

20110510162832.png

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

Μάλλον σε μπέρδεψα χειρότερα.

Να κάνω ένα video για να σας δήξω;

Link to comment
Share on other sites

Όχι, δε με μπέρδεψες.

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

Μετά από αυτό, αν κατάλαβα, ρωτάς πως θα γράψεις στο ήδη υπάρχον αρχείο...

Δες τον παρακάτω κώδικα. Το FileMode.Truncate γράφει σε ήδη υπάρχον αρχείο, σβήνοντας το περιεχόμενο και βάζοντας ότι καινούριο του στείλεις. Δες και τα υπόλοιπα modes που έχει.

        
Private Shared Sub WriteTheData(ByVal fullFileName As String, ByVal writeBuffer() As Byte)
Dim fs As New FileStream(fullFileName, FileMode.Truncate)
Try
fs.Write(writeBuffer, 0, writeBuffer.Length)
Catch e As System.IO.IOException
SendEmailException(e, "StFunctions.WriteTheData")
Catch e As Exception
SendEmailException(e, "StFunctions.WriteTheData")
Finally
fs.Close()
End Try
End Sub

Link to comment
Share on other sites

Ευχαριστώ για την απάντηση άλλα δεν το αποθήκευει σωστά και δεν μπορώ να το ξανά διαβάσω μάλλον επειδή εγώ στο αρχείο τα αποθηκεύω με άλλον τρόπο .

Δες πως τα αποθηκεύω για να καταλάβεις.


Dim save As New IO.StreamWriter(TextBox1.Text)
save.WriteLine(TextBox1.Text + "#" + TextBox2.Text + "#" + TextBox3.Text + κτλ...............)
save.Close()
Me.Close()

Και ένα βίντεο για να δείτε

Link to comment
Share on other sites

Θα μπορούσες να αλλάξεις τη μέθοδο, αλλά και πάλι δεν είναι πρόβλημα.

Δες αυτό το παράδειγμα: File.WriteAllText Method (String, String, Encoding) (System.IO)

Edit: Αν θέλεις βέβαια να είσαι σωστός προγραμματιστικά, θα έπρεπε να χρησιμοποιείς XML και καλύτερα ένα αρχείο που να βάζεις μέσα nodes για κάθε καταχώρηση. Οπότε μετά το κάνεις Bind στο ListView που έχεις και ανανεώνεται αυτόματα με το Event OnChange.

Link to comment
Share on other sites

Σε ευχαριστώ Wizard! θα το δοκιμάσω το βραδύ και θα σου πω αποτελέσματα .

Αυτό που λες με το XML θα με βόλευε και έμενα πολύ καλύτερα άλλα μου φαίνεται ότι είναι ποιο δύσκολο προγραμματιστικά .Θα πρέπει να το ξανά αρχίσω από την αρχή όλα όσον αναφορά save load κτλπ.

Link to comment
Share on other sites

Μπα. Πολύ λιγότερες γραμμές κώδικα. Απλά έχεις μικρότερη ευελιξία. Η Μ$ όμως, αυτό διδάσκει στα σεμινάρια και αυτό προτείνει σα λύση και στα παραδείγματα. Ειδικά για μια τόσο απλή φόρμα που δεν συνδέει δεδομένα μεταξύ τους, είναι 15' υπόθεση να το κάνεις.

Link to comment
Share on other sites

Η xml που μου έδωσες είναι για την c# ε;

Με το File.WriteAllText κάτι κατάφερα άλλα πάλι όχι ολοκληρωτικά.

Μια ακόμη ερώτηση.

Μπορώ να διαγράφω τα δεδομένα που υπάρχουν μέσα στο αρχείο και αφού τα διαγράψει τα περάσω τα καινούρια μέσα στο ίδιο.;

Δηλαδή πατώντας το ''αποθήκευση και κλείσιμο να διαγράφει όλα τα δεδομένα μέσα από το αρχείο και να δημιουργεί μετά ξανά τα δεδομένα μέσα στο ίδιο αρχείο ώστε να μην παιδεύομαι και με της αλλαγές και των άλλων

Link to comment
Share on other sites

Η xml που μου έδωσες είναι για την c# ε;

Ναι.

Δηλαδή πατώντας το ''αποθήκευση και κλείσιμο να διαγράφει όλα τα δεδομένα μέσα από το αρχείο και να δημιουργεί μετά ξανά τα δεδομένα μέσα στο ίδιο αρχείο ώστε να μην παιδεύομαι και με της αλλαγές και των άλλων

Νομίζω ότι το μόνο που χρειάζεται να κάνεις είναι να ανοίξεις αρχείο για write και όχι append, με το ίδιο όνομα. Σε αυτή την περίπτωση το κάνει overwrite.

Link to comment
Share on other sites

Wizard!

Γιατί έχω σκάσει το κεφάλι μου έχει γίνει καζάνι με τόσα που έχω δοκιμάσει :hang3::p.

Αν σου στείλω αυτό που θέλω σε project μπορείς να μου το κανείς ;

oxide

Τα είδη δεν είναι αρσενικό και θηλυκό ;Για αυτό το έβαλα έτσι

Link to comment
Share on other sites

Συμφωνώ μαζί σου να φανταστείς όσα ξέρω από ένα βιβλίο που είχα διαβάσει στην v.b 6 τα ξέρω και τώρα δουλεύω στην 2008 .:nothing::)

Σε ρώτησα γιατί έχω φτάσει στο αμήν πρώτη φορά :p.

Σε ευχαριστώ φιλέ μου για την βοήθεια σου μέχρι εδω θα τα ξανά δοκιμάσω όλα όσα μου είπες μπας και από τα ‘’νεύρα’’ μου δεν πρόσεχα κάτι :T: ..

Κάτι άσχετο με το θέμα γνωρίζεις και από c++ και c# ;Γιατί σκέφτομαι να ξεκινήσω το καλοκαίρι μια από της δυο και θα ήθελα να μου πεις ποια πιστεύεις ότι είναι ‘’καλύτερη’’ ως προς τα προγράμματα που μπορείς να φτιάξεις

Link to comment
Share on other sites

Βασικά, πρέπει να κάνεις αναζητήσεις με τους κατάλληλους όρους. Πχ ψάξε έτσι:

how to bind xml to listview

Προτίμησε να παίρνεις απαντήσεις από το msdn και forums ειδικευμένα στη Μ$, όπως πχ το Home: The Official Microsoft ASP.NET Site.

Επίσης, η Μ$ έχει πολλά δωρεάν video tutorials για να μάθεις τα βασικά. Η VB6 θα σε βοηθήσει μόνο σε ότι αφορά στον κώδικα, αλλά όχι στο VS2008 που έχει αλλάξει τελείως.

Τώρα για τις γλώσσες... Η C# είναι πολύ δημοφιλής και τη ζητάνε αρκετοί. Επίσης η ίδια η Μ$ την προωθεί πολύ περισσότερο σε σχέση με τη VB και σχεδόν όλα της τα σεμινάρια και παραδείγματα είναι σε αυτή. Οι διαφορές της όμως από τη VB είναι ουσιαστικά στη σύνταξη, με ελάχιστες στον τρόπο ανάπτυξης εφαρμογής.

Από την άλλη, η C++ είναι μια πανίσχυρη γλώσσα που σου ανοίγει πολλούς ορίζοντες. Δεν είναι μια γλώσσα για απλές εφαρμογές αφού μπορείς να γράψεις παιχνίδια, drivers, os modules και βέβαια δε σε περιορίζει στα Windows, αφού υπάρχει και σε Linux και σε iOS/OSX

Link to comment
Share on other sites

Αν και όπως είπες υπάρχουν πολλές διαφορές ανάμεσα στην V.B 6 και στην 2008 ακόμη και στον προγραμματισμό.

Χμμμ οπότε καλυτέρα είναι να ξεκινήσω με την c# που είναι ποιο δημοφιλής που είπες και μετά αφού θα έχω μάθει αρκετά αρχίζω την c++ οπού είναι παρόμια με την c#

Link to comment
Share on other sites

Αν και όπως είπες υπάρχουν πολλές διαφορές ανάμεσα στην V.B 6 και στην 2008 ακόμη και στον προγραμματισμό.

Χμμμ οπότε καλυτέρα είναι να ξεκινήσω με την c# που είναι ποιο δημοφιλής που είπες και μετά αφού θα έχω μάθει αρκετά αρχίζω την c++ οπού είναι παρόμια με την c#

Ελπίζω να μην το κάνεις αυτό για τα προς το ζην!

Link to comment
Share on other sites

η vb6 μοιάζει μόνο στην γενική σύνταξη με την .net, όλα τ' άλλα είναι σχεδόν διαφορετικά (σσ: η .net ήταν η ταφόπλακα της vb και του rad)...

η c# μοιάζει με την c++ μόνο στην γενική σύνταξη και αυτό εν μέρη, οπότε αν πας από c# σε c++ θα πρέπει να τα μάθεις όλα από την αρχή και από την δύσκολη πλευρά τους...

η c# με την vb .net διαφέρουν μόνο στην σύνταξη, τα υπόλοιπα είναι σχεδόν απαράλλαχτα...

πολλοί συγχέουν την γλώσσα με το framework, αλλά η γλώσσα καθορίζει μόνο την σύνταξη ενώ το framework/library καθορίζει όλα τα υπόλοιπα, γι' αυτό και στην .net μπορείς να πας από vb σε c# σε μερικές μέρες...

αν θες να γίνεις προγραμματιστής desktop/web μάθε vb/c#/java, αν θες να γίνεις προγραμματιστής σε embedded/system/desktop μάθε c/c++...

αποφάσισε τι θες...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

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

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.