Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 06-05-11, 17:10
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-05-2011
Μηνύματα: 8
Προεπιλογή Βοήθεια για VB2008

Καλησπέρα.

Υπάρχει καμία εφαρμογή σε VB 2008 που να διαβάζει από ένα αρχείο .txt κωδικούς.

Για παράδειγμα: να γράφω σε ένα textbox ένα κωδικό και να ψάχνει στο αρχείο (kodikoi.txt) τους κωδικούς.

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

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

Έχετε καμία ιδέα το πώς θα γίνει.
Απάντηση με παράθεση
  #2  
Παλιά 06-05-11, 19:02
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Καλησπέρα Γιώργο και καλωσόρισες στο φόρουμ!

Το καλύτερο θα ήταν να δημοσίευες τον προβληματικό κώδικα για να δούμε κι εμείς το πρόβλημα.

Σου δίνω τρεις παραδειγματικούς κώδικες παρακάτω που ίσως σε βοηθήσουν.
Κώδικας:
'''VB - VBA
Sub checkSerial()
    If SerialExists("G-123456") Then
        MsgBox "Serial found!"
    End If
End Sub

Function SerialExists(StrCode As String) As Boolean
    Dim fso As Object, oStream As Object, strText As String
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oStream = fso.OpenTextFile("C:\test.txt", 1)
    strText = oStream.ReadAll
    If InStr(1, strText, StrCode) > 0 Then
        SerialExists = True
    End If
    oStream.Close
End Function


'''VB.Net
'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'        Dim fileReader As String
'        fileReader = My.Computer.FileSystem.ReadAllText("C:\test.txt")
'        If fileReader.Contains("G_123456") Then
'            MsgBox ("Serial found!")
'        End If
'    End Sub



'''// C#
'// private void Button1_Click(System.Object sender, System.EventArgs e)
'// {
'//    string fileReader = null;
'//    fileReader = My.Computer.FileSystem.ReadAllText("C:\\test.txt");
'//    if (fileReader.Contains("G_123456")) {
'//        Interaction.MsgBox("Serial found!");
'//    }
'// }
Αν χρειαστείς κάτι γράψε μας με περισσότερες λεπτομέρειες.

Καλή συνέχεια!
Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 06-05-11, 21:07
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-05-2011
Μηνύματα: 8
Προεπιλογή

Ευχαριστώ για την βοήθεια αυτό που έχω κάνει εγώ είναι να διαβάζει το αρχείο
Να το βάζει σε ένα <<txtNote>> για να δω ότι όντως το διαβάζει και προσπάθησα να το κάνω να ελέγχει μια μια τις γραμμές εάν είναι ίσες με το <<Txtkodikos>> αλλά μου έβγαζε μόνο την πρώτη γραμμή του αρχείου. Άλλαξα το StreamToDisplay.ReadLine σε
StreamToDisplay.ReadΤοEnd αλλά σε αυτή τη περίπτωση διάβαζε το αρχείο αλλά ότι και να έβαζα στο <<txtkodikos>> μου έλεγε άκυρος κωδικός.



Private Sub OKToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKToolStripMenuItem.Click


Dim StreamToDisplay As IO.StreamReader
Do
StreamToDisplay = New IO.StreamReader("C:Energa klidia.txt")
txtNote.Text = StreamToDisplay.ReadLine
StreamToDisplay.Close()
txtNote.Select(0, 0)


If txtkodikos.Text = txtNote.Text Then
TextBox1.Text = ("O kodikos einai sto arxio")
Else
TextBox1.Text = ("Akiros kodikos")
End If

Loop Until 1
End Sub
Απάντηση με παράθεση
  #4  
Παλιά 06-05-11, 23:18
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.249
Προεπιλογή

Αγαπητέ Γιώργο,
Ο κώδικας σου στο μήνυμα έχει ένα τυπογραφικό λάθος (C:Energa klidia.txt χωρίς "\").

Δοκίμασε:
Κώδικας:
Private Sub OKToolStripMenuItem_Click(ByVal sender As System.Object,  _
                                     ByVal e As System.EventArgs) Handles OKToolStripMenuItem.Click

Dim StreamToDisplay As IO.StreamReader
        Dim x As String, CompareString As String, CodeFound As Boolean
        Me.TextBox1.Text = vbNullString
        CompareString = Me.txtkodikos.Text
        Try
            StreamToDisplay = New IO.StreamReader("C:\Energa klidia.txt")
        Catch
            If StreamToDisplay Is Nothing Then
                MsgBox("File not found!")
                Exit Sub
            End If
        End Try
        Do Until StreamToDisplay.EndOfStream
            x = StreamToDisplay.ReadLine
            If x = CompareString Then
                CodeFound = True
                Exit Do
            End If
        Loop
        If CodeFound = True Then
            TextBox1.Text = ("Ο κωδικός υπάρχει")
        Else
            TextBox1.Text = ("Άκυρος κωδικός!")
        End If
            StreamToDisplay.Close()
    End Sub
Καλή συνέχεια!

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 06-05-11 στις 23:52.
Απάντηση με παράθεση
  #5  
Παλιά 06-05-11, 23:53
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 06-05-2011
Μηνύματα: 8
Προεπιλογή

Τάσο Χίλια Eυχαριστώ!!! για την βοήθεια.
Δουλεύει μια χαρά.
Πάνω που είχα αγανακτήσει.
Ευχαριστώ πάρα πολύ !!!
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας



Η ώρα είναι 17:04.