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

Αυτόματη εισαγωγή 0 σε Visual Basic


jojos

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

Δημοσ.

Γεια χαρα.Είμαι νέος στην VIsual Basic .Στέλνω σειριακά από την Visual Basic σε ένα μικροεπεξεργαστή ένα αριθμό που κυμαίνεται από 0 έως 99999.Θέλω όταν εισάγω ένα αριθμό π.χ. 86 να αποστέλλεται ο 00086 .Θέλω δηλαδή να μεταδίδονται πάντα 5 ψηφία.Πώς γίνεται να μπαινουν αυτοματα τα μηδενικά?Ευχαριστώ.

Δημοσ.

Firewalker η εντολή που έχω για την αποστολή του αριθμού είναι:Form1.COMPort.Write(Form1.TextBox1.Text)

, όπου στο TextBOx1 εισάγω τον αριθμό.Αν γράψω τώρα

Form1.COMPort.Write(Format(Form1.TextBox1.Text,"00000"))

 

μου στέλνει στη σειριακή 00000 και όχι τον αριθμό που έβαλα

Δημοσ.

Καλύτερα να δουλεύεις με μεταβλητές. Για παράδειγμα:

 

DIM text_to_send AS STRING

DIM text_to_send_formated AS STRING ' Με τις μεταβλητές παίξε λίγο. Δες τι μεταβλητές δέχεται η Format.

 

text_to_send = Form1.TextBox1.Text

text_to_send_formated = FORMAT (text_to_send, "0000")

 

msgbox (text_to_send_formated) 'Για να δεις τι σου επιστέφει

 

Form1.COMPort.Write (text_to_send_formated)

Δημοσ.

Ποια έκδοση της vb; Δες στο help πως συντάσσεται η Format. Τι μεταβλητές θέλει κ.τ.λ.

 

Κάνε το εντελώς απλό σε κάποια άλλη φόρμα:

 

PRINT FORMAT (55, "00000")

 

Θα πρέπει να σου δώσει 00055.

 

Αν είναι .NET θέλει μάλλον

 

PRINT FORMAT (CSng(55), "00000")

 

ή

 

Form1.COMPort.Write(Format(Csng(Form1.TextBox1.Text)),"00000"))

Δημοσ.

Ευχαριστώ Firewalker για την βοήθεια.Τελικά η format θελει σαν πρωτη παράμετρο να ειναι αριθμός έτσι έκανα μία μετατροπή το TextBox.Text σε Integer έκανα την Format η οποία γύρισε το αποτέλεσμα σε string και το έστειλα.

 

Dim text_to_send As Integer

Dim text_to_send_formated As String

.

.

.

 

text_to_send = Convert.ToInt32(Form1.TextBox1.Text)

text_to_send_formated = Format(text_to_send, "00000")

 

MsgBox(text_to_send_formated)

Form1.COMPort.Write(text_to_send_formated)

 

Ευχαριστώ και πάλι

Δημοσ.

[αλλο] στη .net εχεις και το maskedtextbox.

btw αν ασχολεισαι με Pic πες μου που το αγορασες (αν ειναι μαγαζι)

(γτ στο microchip εχει 1-4ευρω και σε αλλα σαϊτ εχει 50-100 , οικογενια f16/f18)

Δημοσ.

PIC.Τους AVr τους αφησα πισω μου εδω και καιρο.Ασχολουμαι με ενα project το οποίο πέρα απο τα άλλα πρέπει να φορτώνει credits σε ενα stick που εφτιαξα με ενα PIC .Για την φορτωση των credit πρεπει να κανω ενα visual προγραμμα.Ετσι επελεξα την Visual Basic την οποία δεν ξέρω καθόλου .Ασε που εχω να βρω πως θα προστατέψω το πρόγραμμα ώστε να μην φορτώνει κανεις αβερτα μοναδες.

 

Evgenios τους PIC τους εχω κανει εισαγωγη μεσω του αντιπροσώπου ,δεν τους πηρα απο καποιο μαγαζι.Δες αν σε συμφερει (τιμη μεταφορικα)να παραγγειλεις απο digikey ή παρόμοιο.

Δημοσ.

Γεια σας!

Φυσικά φίλε jojos θα μπορούσες να χρησιμοποιήσεις και την Right ως εξής:

>Form1.COMPort.Write(Right("00000" & Form1.TextBox1.Text, 5))

Αποτελεί γενικευμένη μέθοδο γεμίσματος στα αριστερά των "fix" αλφαριθμητικών με έναν συγκεκριμένο χαρακτήρα.

Δημοσ.

Δοκίμασέ το έτσι:

>Form1.COMPort.Write(Microsoft.VisualBasic.Right("00000" & Form1.TextBox1.Text, 5))

Αν σου ξαναβγάλει σφάλμα κάν' το έτσι για να δεις σε ποια έκφραση είναι το σφάλμα:

>DIM text_to_send AS STRING
text_to_send ="00000" & Form1.TextBox1.Text
text_to_send = Microsoft.VisualBasic.Right(text_to_send, 5)
Form1.COMPort.Write(text_to_send)

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

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

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