Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Wczytanie pliku
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003
Wczytanie pliku

Mam plik, który ma w sobie taką wartość: "ž&#8222;&#8221;&#8222;ŢČňö¨ŇčŘĘ&#8222;Ž&#8224;ŢŘŢä&#8222;ÂĆÖŽäŢęÜČú". Wczytuję ją za pomocą funckji Read:
Function Read(Filename As String) As String
Dim Bufor As String
Dim Kanal As Integer
Dim oLini As Integer

Kanal = FreeFile
oLini = 0

Open Filename For Input As Kanal
    While EOF(Kanal) <> -1
        Line Input #Kanal, Bufor
        Read = Read & Bufor & vbNewLine
       
    Wend
Close Kanal
Read = Left(Read, Len(Read) - 2)
End Function

No i wczytuje tylko 3 pierwsze znaki. Dlaczego?


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

05-08-2004 15:42
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Qde zmienił trochę wygląd pliku. Zamieszczam go na serwerze, bo tu się widzę nie da pokazać... ftp://protom.one.pl/pub/usr/mm/Objects.txt


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

05-08-2004 15:46
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Też miałem kiedyś problem ze znakiem numer 26. Wczytuj do rich text boxa lub binarnie do tablicy, wtedy nie będzie problemu.


_____________________________________________
www.mob.abc.pl - moja strona o VB

05-08-2004 16:08
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Zauważyłem, że to chyab jest znak cofania. Spróbuj napisać coś w notatniku i wcisnąć Alt+026.


_____________________________________________
www.mob.abc.pl - moja strona o VB

05-08-2004 16:27
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

No zgadza się, ale zauważ, że:
1)Wczytuję to do zmiennej
2)On nie wie co ma cofać

No tak czy inaczej, powiadasz, że bez dodatkowej kontrolki się nie da?


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

05-08-2004 18:19
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Można odczytać binarnie np.

Dim plik() As Byte
Open FileName For Binary As #1
ReDim plik(1 To LOF(1)) As Byte
Get #1, , plik
Close #1

Jeżeli w pliku nie ma znaków 0 to można to przerobić na string.

for i = 1 to ubound(plik)
plikStr = plikStr & chr$(plik(i))
next


_____________________________________________
www.mob.abc.pl - moja strona o VB

05-08-2004 18:33
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Dzięki. A tak na uboczu co robi UBound?


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

05-08-2004 22:01
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Podaje górn ą granicę tablicy.


_____________________________________________
www.mob.abc.pl - moja strona o VB

05-08-2004 22:06
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Znak 26 jest znakiem końca pliku i dlatego tak się dzieje.
Oprócz metody Biska można też tak:

Function Read(Filename As String) As String
''' Referencje do Microsoft Scripting Runtime

Dim oFso As FileSystemObject
Dim oFile As TextStream
Dim bufor As String
Dim oLini As Integer

Set oFso = New FileSystemObject
Set oFile = oFso.OpenTextFile(Filename, , False)

Do Until oFile.AtEndOfStream
  bufor = oFile.ReadLine
  Read = Read & bufor & vbNewLine
  oLini = oLini + 1
  MsgBox (bufor)
Loop
MsgBox (oLini)
End Function

P.S. W metodzie Biśka można też zamiast tablicy zadeklarować jak niżej:

Function Read(Filename As String) As String
Dim bufor As String
Dim Kanal As Integer
Dim oLini As Integer
oLini = 0
Kanal = FreeFile
Open Filename For Binary As Kanal
bufor = Space(LOF(Kanal))
Get Kanal, , bufor
Close Kanal
MsgBox (bufor)
End Function

Wówczas w zmiennej bufor jest string z pliku bezpośrednio.


_____________________________________________
Karolina

05-08-2004 22:53
Pokaż profil karolinavb  Wyślij email do karolinavb   
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Dzięki!


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

05-08-2004 23:43
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
Wszystkich odpowiedzi: 9 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1