Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Plik sekwencyjny
ralfer




Typ: neutral
Postów: 47
Zarejestrowany: May 2003
Plik sekwencyjny

Jak usunac ostania linijke w pliku sekwencyjnym???
Dzieki z gory

31-07-2003 14:59
Pokaż profil ralfer  Wyślij email do ralfer   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
Rozwiązanie

Najpierw otwórz plik i ustal ile ma wpisanych linijek {za pomocą funkcji Line Input()). Zamknij plik.
Następnie otwórz go jeszcze raz, jednocześnie tworząc tymczasowy plik. Do tymczasowego pliku "wrzucasz" wszystkie odczytane "po drodze dane" do czasu aż dojdziesz do linijki, której numer ustaliłeś wcześniej. Zamykasz tymczasowy plik i plik źródłowy. Źródłowy "zabijasz", a w jego miejsce, pod jego nazwą, wrzucasz tymczasowy.

Jak znajdę chwilę czasu to podeślę Ci kod.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

02-08-2003 00:59
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
ralfer




Typ: neutral
Postów: 47
Zarejestrowany: May 2003
Dzieks

Dzieki..........dopiero co moglem zajrzec na forum;-).....wydaje sie byc proste ..... dzieki bardzo ......... Nie wiem jak i czy?......... Ci browarek postawie;-)...ale Ci postawie;-)
Pozdrowionka

06-08-2003 08:41
Pokaż profil ralfer  Wyślij email do ralfer   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
oto co wymyśliłem...

'procedurka wywołująca:

Sub jdksal()
    UsunOstatniWiersz OstatniaLinijka("C:\Moje dokumenty\TEST.txt"
End Sub


'funkcja określająca ile jest linii w pliku

Function OstatniaLinijka(nazwaPliku As String)
Dim strTemp As String
Dim i As Long
   
    Open "C:\Moje dokumenty\TEST.txt" For Input As #1
        Do While Not EOF(1)
            i = i + 1
            Line Input #1, strTemp
        Loop
    Close #1

OstatniaLinijka = i

End Function


'funkcja właściwa

Sub UsunOstatniWiersz(ostLinia As Long)
Dim i As Long
Dim strTemp As String
Dim retVal As Long
   
    Open "C:\Moje dokumenty\TEST.txt" For Input As #1
        Open "C:\Moje dokumenty\TEST_1.txt" For Output As #2
            Do While i < ostLinia - 1
                i = i + 1
                Line Input #1, strTemp
                Print #2, strTemp
            Loop
        Close #2
    Close #1

retVal = Shell("C:\Windows\Notepad.exe C:\Moje dokumenty\TEST.txt", vbNormalFocus)
retVal = Shell("C:\Windows\Notepad.exe C:\Moje dokumenty\TEST_1.txt", vbNormalFocus)

End Sub


'procedurka tworząca przykładowy plik

Sub ZapiszPrzykladowyPlik()
Dim i As Long
    Open "C:\Moje dokumenty\TEST.txt" For Output As #1
        For i = 1 To 10
            Print #1, "Pozdrawiam wszystkich_" & i
        Next i
    Close #1
End Sub



_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

06-08-2003 13:30
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Wszystkich odpowiedzi: 3 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1