Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Vb i msflexgrid
anonim




Typ: Nie zarejestrowany
Vb i msflexgrid

Mam do robienie program ktory ma za zadanie zapisywac wprowadzone dane z
textboxow a konkretnie wartosci cisnienia we wkrwi oraz date, zapis zrobilem
i wszystko śmiga, dane w pliku oddzielam znakiem | a na koncu danych jest
Chr(13). Mam problem przy odczycie danych, czy jest jakas metoda, i jak to
zrobic by poszczegolne dane zostały wczytane do flexgrid'a
Wiecie np.
dzień          pomiar      puls
22.09.2004    120/80      70
i tak dalej ( nie wiem czy w formatowaniu forum to dobrze wyjdzie)
Czy mógłby mi ktos coś podszepnąć? może macie jakis program z czyms podobnym?
pozdro
Raf

19-09-2004 21:44
  
mikmas
From Łódź Stadt




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

Dobrym programem jest prog Siatka autorstwa hab. guru Jelcyna w dziale Workshop-->Kontrolki

[Post edytowany dnia 19-09-2004 22:44 przez mikmas]


_____________________________________________
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

19-09-2004 22:43
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
karolinavb




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

Anonimie

Cóż nie wiem czy tam na końcu jest CH(13) czy vbNewLine ?
Zaznaczam na początku, że ja bym czytała ten plik za pomocą ADO (Jet 4.0)(zapisywała również), ale wydaje mi się, że nie ma tutaj specjalnie dużo zwolenników ADO. Poza tym nie wiem dlaczego wykorzystujesz plik tekstowy , a nie bazę danych. (łatwo go zmienić z Notatnika, to pozytyw czasem.... być może...). Moja propozycja jest taka:

Function Read1(NazwaPliku As String) As String
Dim BuforPliku As String
Dim UchwytPliku As Integer
Dim lRekordow As Long
Dim lKolumn As Long
Dim max_len As Long
Dim new_len As Long
Dim iKol As Integer
Dim iRow As Integer
Dim myArr() As String

''''czytanie pliku
UchwytPliku = FreeFile
Open NazwaPliku For Binary As UchwytPliku
BuforPliku = Space(LOF(UchwytPliku))
DoEvents
Get UchwytPliku, 1, BuforPliku
Close UchwytPliku

'''' poniżej vbNewLine do zmiany ewentualnie
myArr = Split(BuforPliku, vbNewLine, , vbTextCompare)
lRekordow = UBound(myArr)

'''' "|"  -kod 124 - taki znak ?
''''MsgBox (Asc("|")

'''' FlexArr tablica w której są rekordy pliku

Dim FlexArr() As Variant
ReDim FlexArr(lRekordow)
lKolumn = 0
For iRow = 0 To lRekordow
    '''' wyciąć ostatni znak jesli na końcu byłby "|"
    If Len(myArr(iRow)) > 0 Then
        If Right(myArr(iRow), 1) = "|" Then
            myArr(iRow) = Left(myArr(iRow), Len(myArr(iRow)) - 1)
        End If
    End If
    FlexArr(iRow) = Split(myArr(iRow), "|" )
    ''' określenie maksymalnej liczby kolumn nie wszystkie muszą być wypełnione w danym rekordzie
    If lKolumn < UBound(FlexArr(iRow)) Then
        lKolumn = UBound(FlexArr(iRow))
    End If
Next
'''' wypełnienie siatki
With MSFlexGrd
    .Visible = False
    .FixedCols = 0
    .Cols = lKolumn + 1
    .FixedRows = 1
    .Rows = lRekordow + 1
    'wprowadzanie danych
    For iRow = 0 To lRekordow
        For iKol = 0 To lKolumn
            '''' uwaga na odwołanie do elemntów tablicy - dwa nawiasy - to tablica tablic 
            .TextMatrix(iRow, iKol) = FlexArr(iRow)(iKol)

        Next iKol
    Next iRow
    '''' dopasowanie rozmiarów kolumn kontrolki    
    Font.Name = .Font.Name
    Font.Size = .Font.Size
    For iKol = 0 To lKolumn
        max_len = 0
        For iRow = 0 To lRekordow
            new_len = TextWidth(.TextMatrix(iRow, iKol))
            If max_len < new_len Then max_len = new_len
        Next iRow
        .ColWidth(iKol) = max_len + 240
        .ColAlignment(iKol) = flexAlignLeftCenter
    Next iKol
    '''' wyświetlenie kontrolki
    .Visible = True
End With
End Function


_____________________________________________
Karolina

20-09-2004 14:32
Pokaż profil karolinavb  Wyślij email do karolinavb   
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1