Jump to content
GSForum - Segélyvonal

Visual Basic


Athos
 Share

Recommended Posts

Athos

Sziasztok!

 

Visual Basicben kéne egy DBF fájlt elérnem. Tud valaki ebben segíteni? Fontos, hogy a kód kéne nekem. A Microsoft Jet adatbáziskezelõjével sikerült, de karaktergondok vannak - az ékezetes betûk nem látszódnak. Gondoltam kipróbálom más ODBC driverrel, de nem sikerült megoldanom. Félig meddig tudom használni, de nem tudtam kinyomozni milyen paraméterezés kéne neki.

 

Köszi!

Link to comment
Share on other sites

arpsoft

Nem tudja! Hehe...

Konvertert kell hozzá írni sajnos, mivel a dbf állomány nagy valószínûséggel DOS-os kódolást használ.

Esetleg megpróbálhatsz 852-es kódlapot használni, bár ezt nem tudom, mennyire eszi meg az ODBC.

 

Egyébként ha csak olvasni szeretnéd, akkor egyszerûbb direkt fájl mûveletekkel buherálni az állományt, mivel a dbf kötött hosszúságú rekordokat tartalmaz.

Link to comment
Share on other sites

Athos
:pislog: Ne máááááá! Ez gáz. Akkor az a program, amit találtam és tudja olvasni, az így tesz szerinted? Direkt fájlmûvelethez tudsz valami segítséget adni (pl.: DBF fájl felépítése) ?
Link to comment
Share on other sites

Athos

Köszi! ;) A héten rácuppanok és írok egy saját DBF beolvasót. 8)

Link to comment
Share on other sites

  • 3 weeks later...
Athos

Egy újabb kérdésem lenne. Tud valaki abban segíteni, hogyan tudok olyan programot írni, ami minimalizáláskor az értesítési területre költözik?

Link to comment
Share on other sites

arpsoft
     Private Type NOTIFYICONDATA
        cbSize As Long
        hWnd As Long
        uId As Long
        uFlags As Long
        uCallBackMessage As Long
        hIcon As Long
        szTip As String * 64
     End Type

     Private Const NIM_ADD = &H0
     Private Const NIM_MODIFY = &H1
     Private Const NIM_DELETE = &H2

     Private Const WM_MOUSEMOVE = &H200

     Private Const NIF_MESSAGE = &H1
     Private Const NIF_ICON = &H2
     Private Const NIF_TIP = &H4

     Private Const WM_LBUTTONDBLCLK = &H203   'Double-click
     Private Const WM_LBUTTONDOWN = &H201     'Button down
     Private Const WM_LBUTTONUP = &H202       'Button up

     Private Const WM_RBUTTONDBLCLK = &H206   'Double-click
     Private Const WM_RBUTTONDOWN = &H204     'Button down
     Private Const WM_RBUTTONUP = &H205       'Button up

     Private Declare Function Shell_NotifyIcon Lib "shell32" _
        Alias "Shell_NotifyIconA" _
        (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

     Dim nid As NOTIFYICONDATA


     Private Sub Form_MouseMove _
        (Button As Integer, _
         Shift As Integer, _
         X As Single, _
         Y As Single)
         'Event occurs when the mouse pointer is within the rectangular
         'boundaries of the icon in the taskbar status area.
         Dim msg As Long
         Dim sFilter As String
         msg = X / Screen.TwipsPerPixelX
         Select Case msg
            Case WM_LBUTTONDBLCLK
             Form1.WindowState = 0
             Form1.Visible = True
       
         End Select
     End Sub

     Private Sub Form_Load()
        nid.cbSize = Len(nid)
        nid.hWnd = Form1.hWnd
        nid.uId = vbNull
        nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
        nid.uCallBackMessage = WM_MOUSEMOVE
        nid.hIcon = Form1.Icon
        nid.szTip = "This is a Tooltip text"
        Shell_NotifyIcon NIM_ADD, nid

     End Sub

     Private Sub Form_Resize()
        If Form1.WindowState = vbMinimized Then
            Form1.Visible = False
        Else
            Form1.Visible = True
            Form1.Show
        End If
     End Sub

     Private Sub Form_Unload(Cancel As Integer)
        Shell_NotifyIcon NIM_DELETE, nid
     End Sub

Link to comment
Share on other sites

Athos
:istenvagy: Nagyon köszönöm! Ahogy közelemben lesz egy VB ki is próbálom.
Link to comment
Share on other sites

  • 3 weeks later...
Athos

Word makróval hogyan tudom kitörölni a vágólap tartalmát?

Link to comment
Share on other sites

  • 3 weeks later...
kboz

Üdv!

Elõször jelentkezem - most léptem be.

Visual Basic net 2005-öt kezdtem tanulmányozni,de alakadtam

kérdésem: a DATA Form Wizárd, hogy érhetõ el, mert nekem a

Projeck|AddNewItem|Temlates ablakban nem jelnik meg az ikonja.

( Steven Hollzner - Fekete köny - szerint kellene) :S

Link to comment
Share on other sites

arpsoft

Express vagy sima 2005?

Link to comment
Share on other sites

  • 4 months later...
horukk

Sziasztok.

Visual Basic 6-ban szeretnék írni fájl másolásra egy olyan kódot, mint amilyet arpsoft mutatott a c/c++ topicban a #180-as hozzászólásában. Konkrétabban be szeretnék olvasni fájlt egy dinamikus tömbbe, majd azt kizáró vagy művelettel titkosítanám és visszaírnám fájlba. Ehhez kérném a segítségetekek.

Link to comment
Share on other sites

horukk

Meg ehhez is, hogy vajon miért nem találja a fájl végét. Úgy tűnik, hogy nem lép ki a ciklusból.

Private Sub Command1_Click()
Dim a As Long
a = 0
'On Error GoTo Hiba
Open "kivalasztott_file" For Binary As 1
While Not EOF(1)
  a = a + 1
  Seek #1, a
Wend
Close #1
End Sub

Link to comment
Share on other sites

arpsoft

Nem így kéne írni: EOF(#1) ?

Link to comment
Share on other sites

Athos

Én meg úgy csinálnám, hogy felvennék egy Integer típusú változót és elõször abba meghatároznék egy olyan sorszámot, amit még tuti lehet használni.

F = Freefile

 

Megnyitáskor és záráskor is #F-vel kell rá hivatkozni. EOF-nál nem tudom fejbõl, de szerintem a súgóban benne van.

Link to comment
Share on other sites

horukk

arpsoft, EOF(1) a helyes. Más gond van.

Link to comment
Share on other sites

arpsoft

A seek egészen addig nem állítja át az EOF-ot, ameddig nem próbálsz meg olvasni a fájlból. Ez csak binary módban igaz.

Link to comment
Share on other sites

horukk

Köszi, olvasással valóban megáll a fájl végén.

Az alábbi kóddal manipuláltam a biteket, de végtelen lett tõle a ciklus. Többféle lehetõséget megpróbáltam, mindig ugyanolyan rossz lett. Mit szóltok hozzá?

Private Sub Command3_Click()

Dim b As Long, c(100000) As Byte
b = 0
Open "c:\proba2.txt" For Binary As 1
While Not EOF(1)
b = b + 1
Seek #1, b
Get #1, , c(b)
c(b) = c(b) Xor 7
Put #1, , c(b)
Wend
Close #1

End Sub

Link to comment
Share on other sites

arpsoft

Private Sub Command3_Click()

Dim b As Long, c(100000) As Byte, n as Long
b = 0
Open "c:\proba2.txt" For Binary As 1
n=LOF(1)
seek #1,1
get #1,,c
for b=1 to n
  c(b) = c(b) Xor 7
next b
seek #1,1
Put #1, , c
Close #1

End Sub

 

Link to comment
Share on other sites

payskin

Otthon dolgozom ma bõszen, mikor szólnak Messengeren, hogy egész nap keres a Nagyfõnök. Vágtatok befelé, hogy mi lehet ez a fontos. A következõ van (nyugi, én sem értem):

 

Visual Basicben hogy lehet használni az FRM, CRM és WSG kiterjesztésû állományokat. Az FRM-rõl tudjuk, hogy az valami ûrlapdolog, a többirõl nem tudunk semmit.

 

Szóval, aki erre valami értelmes választ asszociál, azt nagyon megköszönném. :)

 

Link to comment
Share on other sites

arpsoft

Nem lehet, hogy a VB program használja ezeket a fájlokat?

A CRM elvileg Customer Relationship Management lenne, ilyen szoftvere van a Microsoft-nak is.

Link to comment
Share on other sites

horukk

arpsoft segítségével alakul a "titkosító program". De van még egy kis gond vele. Minden egyes futtatás után a fájlhoz biggyeszt 1 bájtot. Ezt hogy lehetne kiküszöbölni?

Dim b As Long, c() As Byte, n As Long
b = 0

Open "c:\proba.jpg" For Binary As 1
n = LOF(1)
ReDim c(n)
Seek #1, 1
Get #1, , c
For b = 1 To (n)
  c(b) = c(b) Xor 7
Next b
Seek #1, 1
Put #1, , c
Erase c
Close #1

Link to comment
Share on other sites

horukk

Közben rájöttem a hibára :) . Helyesen: n = LOF(1) - 1. Így fájlba írásnál nem ad hozzá pluszba 1 bájtot.

Link to comment
Share on other sites

  • 4 months later...
Netkaloz

Vb script segítségével, hogyan lehet elérni, hogyha a felhasználó az MsgBox Nem gombját választotta, a gép kijelentkezzen?

Link to comment
Share on other sites

  • 11 months later...
Get_in_the_Game

Sziasztok!

 

Nem nagyon vagyok otthon visual basicba... és Excelbe kéne csinálnom egy olyan programocskát, hogy beírok egy számot az A1 és A2 cellába... az A1 cellában lévő szám adja meg azt, hogy hány számból válasszon ki, az A2 cellában lévő pedig azt, hogy hány számot válasszon ki. Tehát például A1 10 A2 3: ez azt jelenti, hogy 0 és 10 között lévő számokból válasszon ki 3 véletlenszerű számot. Majd ezekkel a számokkal töltse fel a B oszlopot.

Tudna nekem ebben valaki segíteni?

Előre is köszönöm!

Üdv.: Gábor

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...