Ergebnis 1 bis 8 von 8
  1. #1
    Fortgeschrittener
    Registriert seit
    23.12.2008
    Beiträge
    31

    Standard [VB.NET] Problem mit Builder

    Hallo, ich habe ein komisches Problem:

    ich habe einen builder, da funktioniert eigentlich alles gut, b is auf eine Sache
    Wenn ich in verschiedene Textboxen etwas längeres eingebe, das dann an die stub übergeben wird (etwa um die 20 Zeichen) kommt beim ausführen des servers "Index war ausserhalb des ArrayBereiches"
    Ersetze ich aber alles mit weniger zeichen, z.B "1" geht alles Super! Aber das nützt mir nichts!

    An was kann das liegen?!

    Danke im voraus, hoffe auf hilfe!

  2. #2
    Trojaner
    Registriert seit
    15.08.2008
    Beiträge
    70

    Standard

    Hmmm, also wenn ich in der Schule damals richtig aufgepasst habe, musst du eigentlich nur das Array größer machen, aber alle Angaben ohne Gewähr, denn der Stoff is bei mir vor 1 Jahr rechts rein links raus geflogen....


    [B] SchülerVZ Invite

  3. #3
    Stiller Leser
    Registriert seit
    14.03.2009
    Beiträge
    3

    Standard

    Hehe, mein erster post hier

    Ich hab das selbe problem, es einfach größer zu machen scheint net zu gehen...

  4. #4
    Richard Stallman Avatar von Sawyer
    Registriert seit
    26.07.2008
    Beiträge
    2.037

    Standard

    Hallo, ich habe ein komisches Problem:

    ich habe einen builder, da funktioniert eigentlich alles gut, b is auf eine Sache
    Wenn ich in verschiedene Textboxen etwas längeres eingebe, das dann an die stub übergeben wird (etwa um die 20 Zeichen) kommt beim ausführen des servers "Index war ausserhalb des ArrayBereiches"
    Ersetze ich aber alles mit weniger zeichen, z.B "1" geht alles Super! Aber das nützt mir nichts!

    An was kann das liegen?!

    Danke im voraus, hoffe auf hilfe!
    also das kann wie resartg schon sagte nur am string liegen der übergeben wird

    da es ein fixed string ist (also eine vordefinierte länge hat) muss die Länge natürlich auch in der stub angepasst werden , das dann ein index error entsteht , ist natürlich eine logische Schlussfolgerung

    MfG

  5. #5
    Fortgeschrittener
    Registriert seit
    23.12.2008
    Beiträge
    31

    Standard

    Zitat Zitat von The Papst Beitrag anzeigen
    also das kann wie resartg schon sagte nur am string liegen der übergeben wird

    da es ein fixed string ist (also eine vordefinierte länge hat) muss die Länge natürlich auch in der stub angepasst werden , das dann ein index error entsteht , ist natürlich eine logische Schlussfolgerung

    MfG
    Mhm, also in diesen Themen bin ich schwach, kann mir da jemand ein beispiel machen wie ich das realisieren kann? Ich blick da nicht ganz durch, hab jetzt im internet danach gesucht, bin zwar fündig geworden, aber ich peils nicht

    Edit:

    Ok, habs hingekriegt! danke vielmals!
    Geändert von eatsen (17.03.2009 um 01:31 Uhr)

  6. #6
    Stiller Leser
    Registriert seit
    14.03.2009
    Beiträge
    3

    Standard

    Bei mir gehts immernoch nicht...

    Lass ich Compatibility.VB6.FixedLengthString() bei beiden auf 100 gehts, aber läst nichts langes zu. Setze ich es z.B bei beiden auf 1000 (oder auch nur 500) geht weder etwas kurzes ("1") noch längeres nicht mehr.

    Ist dein builder Beispiel ThePapst
    Builder:
    Code:
    Public Class frmMain
    
        ' Builder Sample - by The Papst
        ' 28-09-08
        ' Sample for Gumball & free-hack.com
    
        Dim VB6setting As New Compatibility.VB6.FixedLengthString(1000)
    
        Private Sub cmdErstellen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdErstellen.Click
            ' Öffne CommonDialog
            SaveFileDialog1.ShowDialog()
    
            ' Übergebe die einzelnen Builder einstellungen an die definierten String,s
            Dim FTPString As String = txtFTP.Text
            Dim Name As String = txtName.Text
            Dim Password As String = txtPass.Text
    
            ' Builder-Stub an eine Variable übergeben | .exe würde auch gehen , in meinem fall wähle ich ein eigenes format (.bp = builder projekt)
            Dim BuilderStub As String = My.Application.Info.DirectoryPath & "\Stub\Stub.bp"
            ' Erstelle eine Copy von der Stub die im CommonDialog gewählten ordner
            IO.File.Copy(BuilderStub, SaveFileDialog1.FileName)
    
            'speichere die einstellungen ab ( "+~*" ist das splitzeichen )
            'um die einzelnen optionen , in der stub wieder voneinadner zu trennen
            VB6setting.Value = FTPString & "~" & Name & "~" & Password
    
            ' Öffne Die Builder Stub und hänge die Informationen an
            ' danch wird die Datei wieder geschlossen
            FileOpen(1, (SaveFileDialog1.FileName), OpenMode.Binary)
            FilePutObject(1, VB6setting.Value, LOF(1) + 1)
            FileClose(1)
    
            ' Nachdem die Datei erstellt wurde , geben wir noch eine MessageBox aus
            ' Um den Benutzer darüber zu Informieren , das der Buildforgang
            ' Erfolgreich abgeschlossen wurde!
    
            MsgBox("Die Datei wurde erfolgreich erstellt!", MsgBoxStyle.Information, "Builder Sample - by ThePapst")
    
        End Sub
    
    End Class
    Stub:
    Code:
    Public Class fixedTestStub
    
    
        ' Builder Sample - by The Papst
        ' 28-09-08
        ' Sample for Gumball & free-hack.com
    
        Dim Befehle() As String
        Dim VB6setting As New Compatibility.VB6.FixedLengthString(1000)
        Private Sub fixedTestCompiler_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            ' Definiert die Stub als variable
            ' der zielpfad ist natürlich die datei selbst , um zu ermitteln wie die datei selber heißt
            ' wählen wir zuerst das application Directory und benutzen dann den befehl
            ' My.Application.Info.AssemblyName = gibt den eigentlichen exe namen aus
            Dim Stub As String = Application.ExecutablePath
            Dim file2 As String = Stub.Substring(0, Stub.IndexOf(".")) & "bp.exe"
    
            ' Öffne die datei und Lese die angehanggenen Informationen aus
            IO.File.Copy(Stub, file2)
            FileOpen(1, (file2), OpenMode.Binary)
            ' Ermittle informationen
            FileGet(1, VB6setting.Value, LOF(1) - 99)
            ' Schließe Die datei
            FileClose(1)
    
            ' Zerlege den Kompletten String , in die einzelnen Optionen
            ' Split zeichen muss bei Builder und Stub gleich sein!
            Befehle = VB6setting.Value.Split("~")
            ' Lösche Die DateiKopie
            IO.File.Delete(file2)
    
            ' Übergebe die Zerlegten Informationen an variablen
            Dim FTP As String = Befehle(0)
            Dim Name As String = Befehle(1)
            Dim Password As String = Befehle(2)
    
            ' Gebe zum Test (zum überprüfen ob alle Informationen Korrekt übergeben wurden)
            ' Eine Message Box aus
    
            MsgBox("FTP: " & FTP & ControlChars.CrLf & "Name: " & Name & ControlChars.CrLf & "Passwort: " & Password, MsgBoxStyle.Information, "Server Builder - Stub")
    
            ' Schliesse die Anwendung
            Me.Close()
        End Sub
    End Class
    Geändert von stangand (17.03.2009 um 17:42 Uhr)

  7. #7
    Richard Stallman Avatar von Sawyer
    Registriert seit
    26.07.2008
    Beiträge
    2.037

    Standard

    Code:
    FileGet(1, VB6setting.Value, LOF(1) - 99)
    Schau dir mal diese Zeile an , die muss du natürlich anpassen , also in deinem Fall - 999

    MfG

  8. #8
    Stiller Leser
    Registriert seit
    14.03.2009
    Beiträge
    3

    Standard

    Kompletter Quote des Vorposters entfernt - H4x0r007


    Ach, mann bin ich doof... is mir garnet aufgefallen...
    Danke! Jetzt gehts
    Geändert von H4x0r007 (20.03.2009 um 13:42 Uhr)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •