Jump to content



Βοηθεια!!!vb 6.0 & vb.net 2010


sergios

Recommended Posts

Γεια σας παιδια.μια ερωτηση ισωσ γνωριζετε την απαντηση...

Προσπαθω να στειλω μεσω σειριακης θυρας σε ASCII τα ελληνικα γραμματα.και το αποτελεσμα ειναι να μου βγαινουν κινεζικα....

στην vb.net 2010 υπαρχει μια εντολη SerialPort1.Encoding= System.Text.Encoding.Default το οποιο το διορθωνει και στελνει κανονικα τα ελληικα γραμματα.

ΕΡΩΤΗΣΗ:

στην VB 6.0 sp2 πως διορθονεται το προβλημα αυτο??:slap:

Link to comment
Share on other sites

Κάνε χρήση του MSCOMM control και μπορείς να στέλνεις κανονικά....με την προυπόθεση ότι η μεταβλητή σου είναι δηλωμένη string και αρχικοποιημένη γιατι η 6.0 έχει πολλά προβλήματα με τις μη δηλωμένες μεταβλητές. Συνήθως εκεί είναι το κόλπο.

Link to comment
Share on other sites

καλιμερα ευχαριστω για το ενδιαφερον σου! αλλα δεν ειναι αυτο.

Private Sub Command1_Click()

Dim ser, sd As String

ser = "ΤΙΜΗ ΛΙΤΡΟΥ"

sd = StrConv(ser, vbFromUnicode, 256)

MSComm1.Output = Chr(27) & Chr(33) & Chr(0) & ser

MSComm1.Output = Chr$(27) & Chr$(33) & Chr$(0) & sd

MSComm1.Output = Chr(27) & Chr(33) & Chr(0) & "ΠΟΣΟ"

MSComm1.Output = Chr(27) & "i"

End Sub

ο παραπανω κωδικας ειναι ενα απλο τεστ το οποιο επρεπε να στελνει μεσς σειριακης (ΤΙΜΗ ΛΙΤΡΟΥ,ΤΙΜΗ ΛΙΤΡΟΥ ,ΠΟΣΟ) και ομως στελνει κινεζικα!!!!

το ειχα αντιμετοπισει το προβλημα αυτο παλιοτερα...αλλα δεν θυμαμαι το ID για ελληνικα...

Το προβλημα ειναι οτι τα ελληνικα ανηκουν στον extended ascii table και ειναι των 8 bits... ενω το βασικο table ειναι 7 bits/ascii.

θυμαμαι οτι το ειχα λυσει με την εντολη StrConv(ser, vbFromUnicode, 256) το 256 ειναι λαθος....(ID) αυτο μου κανει ολη την ζημια...αν ξερει κανενασ το σωστο ID 8α με εσωνε....

στην VB.NET οταν του λες serialPort1.system.encoding=default ουσιαστικα κανει ακριβως το ιδιο πραμα με την εντολη StrConv(ser, vbFromUnicode, 256) αλλα με μια διαφορα....βρισκει το default Unicode απο τα windows απο μονο του...κατι το οποιο δεν κανει η vb6 η δεν γνωριζς την διαδικασια αυτοματης ευρεσης toy unicode των windows..

Link to comment
Share on other sites

ΛΟΙΠΟΝ επειδη ολο το θεμα με εχει τσαντισει.....βρικα μια αλλην απαντηση (πλαγια).

Public Function StrConvToGreek(StrToConvert) As String

Dim ConvertedString As String

Dim AsciiConvert As Integer

ConvertedString = ""

StrConvToGreek = ""

For i = 1 To Len(StrToConvert)

AsciiConvert = Asc(Mid(StrToConvert, i, 1))

If (AsciiConvert > 192) And (AsciiConvert < 211) Then

AsciiConvert = AsciiConvert - 65

ElseIf (AsciiConvert > 192) And (AsciiConvert >= 211) Then

AsciiConvert = AsciiConvert - 66

End If

ConvertedString = ConvertedString & Chr(AsciiConvert)

Next i

StrConvToGreek = ConvertedString

End Function

Private Sub Command1_Click()

On Error Resume Next

Dim PriceLt, LT, TotV, EisP As String

PriceLt = StrConvToGreek("ΤΕΣΤ 1")

LT = StrConvToGreek("ΤΕΣΤ 2")

TotV = StrConvToGreek("ΑΔΦΣΗ")

EisP = StrConvToGreek("ΚΞΣΓΘΞΜΛ")

MSComm1.Output = Chr(27) & Chr(33) & Chr(0)

MSComm1.Output = Chr(27) & Chr(33) & Chr(0) & PriceLt & " 1.234" & Chr$(&HA) & Chr$(13)

MSComm1.Output = Chr(27) & Chr(33) & Chr(0) & LT & " 15.000" & Chr$(&HA) & Chr$(13)

MSComm1.Output = Chr(27) & Chr(33) & Chr(16) & TotV & " 20.00" & Chr$(&HA) & Chr$(13)

MSComm1.Output = Chr(27) & Chr(33) & Chr(0) & EisP & " 25.00" & Chr$(&HA) & Chr$(13)

MSComm1.Output = Chr(27) & Chr(33) & Chr(16) & StrConvToGreek("ΣΞΔΗΓΔΥΝ") & "15.00" & Chr$(&HA) & Chr$(13)

MSComm1.Output = Chr(27) & "i"

End Sub

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 σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.