logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Delphi] Jak w Delphi policzyć linie w pliku txt i wyświetlić ich ilość?

bikemc 30 Mar 2008 13:21 3730 10
REKLAMA
  • #1 4972538
    bikemc
    Poziom 13  
    Posty: 137
    Ocena: 2
    Witam,
    Jak sprawdzić ile jest linii zapisanych w pliku txt w delphi?
    Chciałbym żeby funkcja wyświetlała ich ilość np:
    showmessage(linii);

    Nie mogę znaleźć o tym nigdzie:(
    dzięki!

    Moderowany przez Marek_Skalski:

    Poprawiłem temat. Zamykam.

  • REKLAMA
  • Pomocny post
    #3 4972792
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #4 4972914
    BugsdBunny
    Poziom 14  
    Posty: 153
    Pomógł: 8
    Ocena: 3
    Powinno być tak, jak napisał OLOAM.
    Dzięki za poprawienie :)
  • REKLAMA
  • #5 4979158
    bikemc
    Poziom 13  
    Posty: 137
    Ocena: 2
    oka działa aż miło:)
    pozdro!:)
  • #6 4982932
    szalony123
    Poziom 12  
    Posty: 21
    Pomógł: 1
    Ocena: 5
    Dobra, to może i ja dorzucę 3 grosze. Kod będzie w c++ ale to też Borland więc zrozumiesz ;)
    Jedna sprawa, plik nie może być zbyt duży (powyżej 6MB zaczyna mielić)
    
    TStringList *lst = new TStringList();
    lst->LoadFromFile("plik.txt");
    
    ::MessageBox(
           0x00,
           IntToStr(lst->Count).c_str(),
           "Ilosc lini",
           MB_ICONINFORMATION|MB_OK
           );
    

    Taaa, to było by na tyle ;P

    Moderowany przez Marek_Skalski:

    Poniższe posty zostawiam w celach edukacyjnych. Jest to przykład jak nie należy pisać programów. Poprawiłem tekst.

  • #7 4983179
    Konto nie istnieje
    Konto nie istnieje  
  • #8 4983481
    szalony123
    Poziom 12  
    Posty: 21
    Pomógł: 1
    Ocena: 5
    Pytanie było o Delphi to jest raz...
    Dwa, to jest c++ a nie c.
    3 ok, zgodzę się z Tobą, teoretycznie masz racje, w praktyce tak się robi, bo jest łatwiej i wygodniej ;] A znając życie kolega będzie chciał coś więcej z tym robić, więc póki co, może z tego korzystać; o ile nie potrzebuje dużej wydajności... :]
  • #9 4983724
    Konto nie istnieje
    Konto nie istnieje  
  • #10 4983811
    szalony123
    Poziom 12  
    Posty: 21
    Pomógł: 1
    Ocena: 5
    ee i tu sie mylisz. Tak sie programuje w firmach, po prostu dopoki nie potrzebna jest optymializacja idzie sie w czas.
    Co do wykladowcy na wykladzie - daj spokoj,
    zmienia slowko struct na class i nazywa to c++. Nie czarujmy sie,
    skoro jest obiektowka to nalezy z niej korzystac, jak bedzie trzeba optymalizowac, wtedy nalezy sie martwic...

    Zdania rozpoczynamy wielką literą i kończymy kropką. Proszę poprawić wszystkie posty przed napisaniem następnego - krzychoocpp

    Zadowolony?
  • REKLAMA
  • #11 4983898
    Konto nie istnieje
    Konto nie istnieje  

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy sposobu zliczania liczby linii w pliku tekstowym w Delphi i wyświetlania tej wartości za pomocą funkcji showmessage. Podstawowe rozwiązanie polega na otwarciu pliku tekstowego, iteracji po liniach przy użyciu pętli while not EOF oraz inkrementacji licznika linii po każdorazowym odczycie linii funkcją readln. Zaprezentowano poprawny kod Delphi z wykorzystaniem zmiennej plikowej i funkcji IntToStr do konwersji liczby na tekst. Alternatywnie zaproponowano użycie klasy TStringList, która umożliwia załadowanie całego pliku do pamięci i odczytanie liczby linii przez właściwość Count, jednak podkreślono, że metoda ta jest mniej optymalna i może być problematyczna przy dużych plikach (powyżej 6MB). W dyskusji poruszono kwestie optymalizacji i dobrych praktyk programistycznych, wskazując, że choć TStringList jest wygodna, to nie jest dedykowana do operacji I/O i może prowadzić do problemów wydajnościowych. Zwrócono uwagę na różnice między podejściem proceduralnym a obiektowym oraz na konieczność świadomego wyboru metod w zależności od wymagań projektu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA