Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: odczyt z pliku...
anonim




Typ: Nie zarejestrowany
odczyt z pliku...

Ja tu z takim malym problemikiem... otoz mam przykladowy plik txt w ktorym jest np. taka oto linijka:

12 45 122 32

I jak zrobic odczyt z tego pliku zeby kazda z tych wartosci podstawic jako inna zmienna?
Wiem ze moze taki troche glupi problemik... ale sie VB zajmuje od 2 tygodni... takze ... plz help...

06-07-2003 19:30
  
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

Ja napisałem kiedyś funkcje która odczytuje od kąś do wybranego znaku np. w tym wypadku spacji. Niewiem czy jest ona potrzebna ale korzystam z niej. A poniżej (przykładowe) rozwiązanie twojego problemu:

Dim OstatniZnak As Integer
Public Function DoZnaku(Ciąg As String, Znak As String, Optional OdKąd As Integer = 1) As String
For I = OdKąd To Len(Ciąg)
If Mid(Ciąg, I, 1) = Znak Then Exit For
DoZnaku = DoZnaku & Mid(Ciąg, I, 1)
Next I
OstatniZnak = I + 1

End Function

Private Sub Form_Load()
Dim Linia As String
Dim Zmienna1, Zmienna2, Zmienna3, Zmienna4
Open App.Path & "\Plik.txt" For Input As #1
Line Input #1, Linia
Close #1
Zmienna1 = DoZnaku(Linia, " "
Zmienna2 = DoZnaku(Linia, " ", OstatniZnak)
Zmienna3 = DoZnaku(Linia, " ", OstatniZnak)
Zmienna4 = DoZnaku(Linia, " ", OstatniZnak)

End Sub


Nie jestem pewien ale mogą być jakieś błędy w tym kodzie bo go nie testowałem.
Jest jeszcze jedno znacznie prostrze rozwiązanie. Mianowicie zamień odstępy na przecinki:
12,45,122,32
potem wystarczy napisać coś takiego:
Dim L1,L2,L3,L4 As String
Open (Plik) For Input As #1
Input #1, L1, L2, L3, L4
Close #1

Przy odczycie z pliku zmienne muszą być typu string.


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

06-07-2003 20:11
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
anonim




Typ: Nie zarejestrowany
a moze tak

Tylko w References dodaj Microsoft Scripting Runtime

Public FSO As New FileSystemObject
Dim plik As TextStream
Dim Napis As String

Set plik = FSO.OpenTextFile TuNazwaPlikuZPelnaSciezka, ForReading)

Do Until plik.AtEndOfStream

  Napis = plik.ReadLineLoop

plik.Close

Pozdrawiam Rav.

08-07-2003 13:50
  
Tigrisek



Typ: neutral
Postów: 91
Zarejestrowany: Jul 2002

Private Sub Command1_Click()
On Error Resume Next

Dim zmienna() As Byte
Dim a As Integer, b As Integer
Dim długość As String, wartość As String, bufor As String

plik = NazwaPlikuZPełnąŚcieżką
Open plik For Input As #1

'przeszukuje cały plik - to jakbys miał więcej linijek
'przyczym każda cyfra to osobna wartość jeśli chcesz by pod uwage brać liczby oddzielone spacjami
' to trzeba wprowadzić pewne modyfikacje

Do Until EOF(1)
    Line Input #1, bufor
    długość = Len(bufor)
    For a = 1 To długość
        wartość = Mid(bufor, a, 1)
        If wartość <> " " Then
            'tworzy tablice dynamiczną bo zapewne niewiadomo ile bedzie tych danych
            ReDim Preserve zmienna(b)
            zmienna(b) = CByte(wartość)
            b = b + 1
        End If
    Next
Loop
Close #1

'b to liczba zebranych zmiennych
'zmienna(b) to wartości


End Sub

08-07-2003 19:43
Pokaż profil Tigrisek  Wyślij email do Tigrisek        107040
anonim




Typ: Nie zarejestrowany

hmm ale namieszaliscie chlopaka. Ja bym to zrobil tak:

1. w pliku tekstowym zrobil cos takiego
" 12 45 122 32 " => te spacje musza byc
2. otworzyl plik i zapisal wartosci do zmiennej np. temp (line input)
2. do programu dodal bym tablice dynamiczna np. dane()
3.dane = slide(temp," "

i gotowe podzieli ci wartosci oddzielone spacjami na rozne wartosci zapisane w tablicy

16-07-2003 01:50
  
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1