Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  StreamWrite in einer Funktion?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  StreamWrite in einer Funktion? (849 mal gelesen)
G. Dawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

Beiträge: 2622
Registriert: 12.07.2004

erstellt am: 27. Nov. 2008 14:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Tag zusammen!

Ich wollte mal wissen, ob ich das da aus VB6 ins VB.net übersetzten kann:

Code:

Public Function MakeDXFCircle(EntityType As String, StartX, StartY, R)
    Print #1, 0
    Print #1, EntityType
    Print #1, 8
    Print #1, "default"
    Print #1, 6
    Print #1, "CONTINUOUS"
    Print #1, 10
    Print #1, StartX
    Print #1, 20
    Print #1, StartY
    Print #1, 40
    Print #1, R
End Function

Was ich mir vorgestellt habe, wie es aussehen könnte; was aber nicht funktioniert:

Code:

Private Function MakeDXFCircle(ByVal EntityType As String, ByVal StartX As Double, ByVal StartY As Double, ByVal R As Double)
            sw.WriteLine("0")
            sw.WriteLine(EntityType)
            sw.WriteLine("8")
            sw.WriteLine("default")
            sw.WriteLine("6")
            sw.WriteLine("CONTINUOUS")
            sw.WriteLine("10")
            sw.WriteLine(StartX)
            sw.WriteLine("20")
            sw.WriteLine(StartY)
            sw.WriteLine("40")
            sw.WriteLine(R)
End Function

Wie kann ich in VB.net diese Funktion zum laufen bringen?

Was dabei herauskommen sollte, ist, wenn ich ein DXF erstellen möchte, kann ich für die Linie, Kreis, Bogen, etc. nur noch eine Funktion dafür aufrufen und fertig.

Vielen Dank im Voraus!
G.

------------------

http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

G. Dawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

Beiträge: 2622
Registriert: 12.07.2004

SolidWorks_2o22 SP5.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o22_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

erstellt am: 28. Nov. 2008 07:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ok... wir habens herausgefunden:
(Danke HenryV!    )

Code:

    Private Function DXFWriteLine(ByVal StartX As Double, ByVal StartY As Double, ByVal EndX As Double, ByVal EndY As Double)

        Dim DXFString As String

        DXFString = "0" & vbNewLine
        DXFString += "LINE" & vbNewLine
        DXFString += "8" & vbNewLine
        DXFString += "default" & vbNewLine
        DXFString += "6" & vbNewLine
        DXFString += "CONTINUOUS" & vbNewLine
        DXFString += "10" & vbNewLine
        DXFString += CStr(StartX) & vbNewLine
        DXFString += "20" & vbNewLine
        DXFString += CStr(StartY) & vbNewLine
        DXFString += "11" & vbNewLine
        DXFString += CStr(EndX) & vbNewLine
        DXFString += "21" & vbNewLine
        DXFString += CStr(EndY)

        Return DXFString

    End Function


welche dann so aufgerufen werden kann:

Code:
sw.WriteLine(DXFWriteLine(StartX, StartY, EndX, EndY))


Vielleicht hilft das ja irgendjemandem da draussen! 

------------------

http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 28. Nov. 2008 07:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für G. Dawg 10 Unities + Antwort hilfreich

Guten Morgen Gilbert,

ansicht sieht dein Code gut aus. Die frage ist nur was sich in deiner sw Variable versteckt, aber ich gehe mal von einer StreamWriter Instanz aus, welche du mit einem FileStream erstellt hast.
War etwas unklar, schaue hier!

------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks Api Snippets

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 28. Nov. 2008 07:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für G. Dawg 10 Unities + Antwort hilfreich

... und nochmal Hallo,

ich bin der Meinung das es auch anders gehen sollte, sogar muss!
Der Befehl StreamWriter.WriteLine schreibt schließlich immer eine Zeile in deine Textdatei! Was ging den nicht, bzw. was für eine Fehlermeldung hast du bekommen?

------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks Api Snippets

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

G. Dawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

Beiträge: 2622
Registriert: 12.07.2004

erstellt am: 28. Nov. 2008 07:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Sorry!
Hier ist der Anfang der Sub:

Code:
    Friend Sub WriteDXF_F( _
        ByVal FILE_NAME As String, ByVal StartX As Double, ByVal StartY As Double, _
                                ByVal EndX As Double, ByVal EndY As Double, ByVal S_Dicke As Double)

        Using sw As StreamWriter = New StreamWriter(FILE_NAME)

            'DXF Header
            sw.WriteLine(DXFHeader())

            ' Line #1
            sw.WriteLine(DXFWriteLine(EndX, EndY, StartX, StartY))

            ' Und hier kommt noch der Rest hin...

            sw.Close()
        End Using
    End Sub


------------------

http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 28. Nov. 2008 08:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für G. Dawg 10 Unities + Antwort hilfreich

dann ist der Fehler klar!
du musst deine StreamWriter Instanz als Parameter in die DXFWriteLine Methode übergeben.
Zum Beispiel so:
Code:
Private Function DXFWriteLine(ByVal sw As StreamWriter, ByVal StartX As Double, ByVal StartY As Double, ByVal EndX As Double, ByVal EndY As Double)

------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks Api Snippets

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

G. Dawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

Beiträge: 2622
Registriert: 12.07.2004

erstellt am: 28. Nov. 2008 08:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Es hiess, dass "sw" nicht definiert war.
Und da ich in der selben Class bin, nur in einer Privat Function, kann ich auch nichts vererben.

Was ich noch kurz sagen möchte, ist, dass ich erst gerade angefangen habe, mit den Classes und so. Ich bin mich langsam aber sicher auf .net von VB6 am umstellen. Das nur so nebenbei! 

------------------

http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

G. Dawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

Beiträge: 2622
Registriert: 12.07.2004

SolidWorks_2o22 SP5.o
Win10_x64, Quadro_P2ooo.
VisualStudio_2o22_Pro.
FEM: Forge_NxT_HPC, ANSYS_WB.
3D-Printer: Ultimaker_2, Tinker_Gnome.

erstellt am: 28. Nov. 2008 08:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von tbd:
dann ist der Fehler klar!


Dachte ich auch!
Aber dann: Function '...' doesn't return a value on all code paths....
Tja... dann wusste ich mir auch nicht mehr zu helfen! 

Aber so wie ich es jetzt mache, geht das wunderbar!
Gibt es Nachteile, von dem was ich jetzt mache?

------------------

http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 28. Nov. 2008 08:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für G. Dawg 10 Unities + Antwort hilfreich

Einen Nachteil gibt es nicht! Ist halt von hintern durch die Nase!

Aber so müsste es auch gehen:

Code:
Friend Sub WriteDXF_F( _
                    ByVal FILE_NAME As String, ByVal StartX As Double, _
                    ByVal StartY As Double, ByVal EndX As Double, _
                    ByVal EndY As Double, ByVal S_Dicke As Double)
                Try
                    Using sw As System.IO.StreamWriter = _
                                New System.IO.StreamWriter(FILE_NAME)
                        'DXF Header
                        sw.WriteLine(DXFHeader())
                        ' Line #1
                        DXFWriteLine(sw, EndX, EndY, StartX, StartY)
                        ' Und hier kommt noch der Rest hin...
                        sw.Close()
                    End Using
                Catch ex As Exception
                    Debug.Assert(False)
                    Trace.WriteLine("Fehler: Wo: " & _
                        ex.StackTrace & " Was: " & ex.Message)
                End Try
            End Sub

            Private Sub DXFWriteLine( _
                ByVal sw As System.IO.StreamWriter, _
                ByVal StartX As Double, ByVal StartY As Double, _
                ByVal EndX As Double, ByVal EndY As Double)
                Try
                    sw.WriteLine("0")
                    sw.WriteLine("LINE")
                    sw.WriteLine("8")
                    sw.WriteLine("default")
                    sw.WriteLine("6")
                    sw.WriteLine("CONTINUOUS")
                    sw.WriteLine("10")
                    sw.WriteLine(CStr(StartX))
                    sw.WriteLine("20")
                    sw.WriteLine(CStr(StartY))
                    sw.WriteLine("11")
                    sw.WriteLine(CStr(EndX))
                    sw.WriteLine("21")
                    sw.WriteLine(CStr(EndY))
                Catch ex As Exception
                    Debug.Assert(False)
                    Trace.WriteLine("Fehler: Wo: " & _
                        ex.StackTrace & " Was: " & ex.Message)
                End Try
            End Sub


------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks Api Snippets

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

G. Dawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

Beiträge: 2622
Registriert: 12.07.2004

erstellt am: 28. Nov. 2008 08:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hm! Sieht sehr schön aus!   

Zitat:
Ist halt von hintern durch die Nase!

Ja, das ist es auf jeden Fall!!! 

Ich werde mal versuchen diese Sub einzubauen!
Doch auch hier, denke ich, dass ich für jede Datei (rund 7 Stück) ich diese Sub jedesmal neu aufbauen muss. Es sind ja nicht immer die gleichen Linien und Bogen.

Desshalb habe ich mir nur die einzelnen Elemente als Funktion erstellt, welche ich dann einfach zusammenstecken kann. Darum von hinten durch die Nase! 

------------------

http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Moderator
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 28. Nov. 2008 08:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für G. Dawg 10 Unities + Antwort hilfreich

Viele Wege führen bekanntlich nach Rom!
Der Code ist ja immer abhängigt von:
- der eigentlichen Aufgabe
- dem persönlichem Geschmack
- dem aktuellem Wissenstand

Wenn ich mir alte Funktionen von anschaue schlage ich beide Hände über den Kopf, aber es funktioniert und das ist die Hauptsache!

Viel Spaß noch in .Net, du wirst es auf jeden Fall nicht bereuhen umzusteigen!

------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks Api Snippets

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

G. Dawg
Ehrenmitglied V.I.P. h.c.
Teamleiter FEM Simulation



Sehen Sie sich das Profil von G. Dawg an!   Senden Sie eine Private Message an GDawg  Schreiben Sie einen Gästebucheintrag für GDawg

Beiträge: 2622
Registriert: 12.07.2004

erstellt am: 28. Nov. 2008 08:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich werde mir aber Deine Funktion trotzdem genau anschauen!!
Das sieht wirklich sehr schön und sauber aus! Ich versuche eigentlich gleich von Anfang an auch so zu arbeiten, aber eben, mein Wissenstand steht mir da noch etwas im Wege 

Vielen, vielen Dank für Deine Beiträge!! Ich bin Dir für jede Hilfe, Idee, Anregung etc. sehr dankbar! 

------------------

http://www.worldcommunitygrid.org

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz