Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Kodowanie plików dat.
pawel
pvsp



Typ: neutral
Postów: 20
Zarejestrowany: Apr 2002
Kodowanie plików dat.

Witam,
Chcę napisać aplikację, po której wpisaniu do pola text informacje zostaną zapisane do pliku dat, jeżeli użytkownik naciśie plik command1. Mój problem polega na tym, że do przycisku command piszę kod:

Private Sub Command1_Click()
Dim stra As String

stra = Text1.Text

For a = 1 To Len(stra)
x = (Asc(Left(stra, a))) + 1
If x = 256 Then
x = 0
y = y + Chr(x)
Next a

Open "ff.dat" For Append As #1
Print #1, stra
Close #1

End Sub

I z pozoru może wydawać się wszystko dobrze, jednak wysypuje mi program na "Next a".
Jeżeli ktoś wie jak mi pomoc, to czekam na odpowiedź.

30-04-2002 20:07
Pokaż profil pawel  Wyślij email do pawel   Odwiedź stronę pawel  
Seth



Typ: neutral
Postów: 40
Zarejestrowany: Apr 2002

sproboj ta petle zapisac w funkcji a w przycisku odwolywac sie do tej ze wlasnie funkcji

powinno dzialc


_____________________________________________
Kamil Seth Matysik

30-04-2002 21:11
Pokaż profil Seth  Wyślij email do Seth   
pawel
pvsp



Typ: neutral
Postów: 20
Zarejestrowany: Apr 2002

Niestety dalej wysypuje na tym samym. Jeżeli byś mógł, to może przyślę Ci to źródło, zajmuje mało i zobaczyłbyć o co chodzi?

01-05-2002 09:05
Pokaż profil pawel  Wyślij email do pawel   Odwiedź stronę pawel  
Seth



Typ: neutral
Postów: 40
Zarejestrowany: Apr 2002

dobra, wyslij


_____________________________________________
Kamil Seth Matysik

01-05-2002 10:05
Pokaż profil Seth  Wyślij email do Seth   
Seth



Typ: neutral
Postów: 40
Zarejestrowany: Apr 2002

zapomniales End If
oto poprawny kod:

Private Sub Command1_Click()
Dim stra As String

stra = Text1.Text

For a = 1 To Len(stra)
x = (Asc(Left(stra, a))) + 1
If x = 256 Then
x = 0
y = y + Chr(x)
End If
Next a

Open "ff.dat" For Append As #1
Print #1, stra
Close #1

End Sub



_____________________________________________
Kamil Seth Matysik

01-05-2002 17:12
Pokaż profil Seth  Wyślij email do Seth   
Jelcyn
Admin forum




Typ: admin
Postów: 895
Zarejestrowany: Apr 2002

diabeł tkwi w szczegółach ;-)


_____________________________________________
Jelcyn
vb4all(małpka)canpol.pl
http://www.coderscity.pl/no-vb4all * http://www.jelcyn.com

02-05-2002 11:30
Pokaż profil Jelcyn  Wyślij email do Jelcyn   Odwiedź stronę Jelcyn       270849979    6237704
xeng



Typ: neutral
Postów: 102
Zarejestrowany: May 2002

Sorry ale mój vb
wywala w takim przypadku :
Block If Without End if
I po problemie .Wiadomo o co chodzi.



_____________________________________________
Nic nie umiem i nic nie wiem.Jestem tuman bity w ciemie.


11-05-2002 00:49
Pokaż profil xeng  Wyślij email do xeng   Odwiedź stronę xeng  
Q



Typ: moderator
Postów: 38
Zarejestrowany: Apr 2002

wydaje mi się że ten kod nie będzie działać
dla napisu np. "Tekst" funkcja Left w linii

x = (Asc(Left(stra, a))) + 1

będzie kolejno zwracać
T
Te
Tek
itd.

A funkcja Asc zwraca kod pierwszego znaku stringa, więc zawsze będzie to Asc( "T" ), czyli 84.


Rozwiązanie
Zmień Left na Mid:

x = (Asc(Mid(stra, a, 1))) + 1

Wtedy będzie pobierał po jednym znaku na a-tym miejscu

[Post edytowany dnia 13-05-2002 17:47 przez Q]


_____________________________________________
Dobre programy dzielą się na te, których nikt nie wymyślił i na te, których nikt nie napisał.

13-05-2002 17:46
Pokaż profil Q  Wyślij email do Q   Odwiedź stronę Q       69629311    1284020
pawel
pvsp



Typ: neutral
Postów: 20
Zarejestrowany: Apr 2002

Niewiem, ale dalej texkt do pliku nie jest kodowany. Po wpisaniu "kot", program zapisuje w pliku "kot".
Dalej prezentuje zmodyfikowany kod:
--------------------------------------
Private Sub Command1_Click()
Dim stra As String
stra = Text1.Text

For a = 1 To Len(stra)
x = (Asc(Mid(stra, a, 1))) + 1
If x = 256 Then
x = 0
y = y + Chr(x)
End If
Next a

Open "ff.dat" For Append As #1
Print #1, stra
Close #1

End Sub
--------------------------------------

19-05-2002 16:27
Pokaż profil pawel  Wyślij email do pawel   Odwiedź stronę pawel  
andrey
Łódź



Typ: neutral
Postów: 295
Zarejestrowany: Mar 2003
Nie wiem czy to jeszcze aktualne ale...

przeglądając formu natrafiłem na chyba w sumie niedokończony post bo autor nic nie mówi przejrzałem kod i chyba to powinno byc tak:
Na formę wstaw 2 textboxy text1 i text2 i jeden przycisk Command1 wklej ten kod:

Private Sub Command1_Click()
Dim kod As String
If Text1.Text = "" Then
    Exit Sub
Else
    kod = Text1.Text
    For a = 1 To Len(kod)
    x = (Asc(Mid(kod, a, 1))) + 1
    If x = 256 Then
      x = 0
      y = y + Chr(x)
    End If
    Text2.Text = Text2.Text & " " & x
    Next a
End If
End Sub

Nie wiem czy autorowi się to przyda ale lubie zakończone posty jak wszyscy pisza że zrobili tak i tak, że wyszło lub nie i się z tym dzielą


_____________________________________________
http://www.carbondesign.pl/ - rowery poziome, trójkołówce, handbike-i, tuning, akcesoria

03-12-2003 13:22
Pokaż profil andrey  Wyślij email do andrey   Odwiedź stronę andrey       3078613
Wszystkich odpowiedzi: 9 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1