dane z pliku

0

Czy ktos ma informacje na temat komponentu wczytujacego dane z pliku tekstowego lub binarnego, ktore mozna traktowac jak DataSource i potem uzywac do ich obslugi kontrolek DataAware (np.)

Napisalem samodzielnie procedury wczytujace plik tekstowy rozdzielany tabulacjami, z mozliwoscia dowolnego sortowania, wyszukiwania itp. ale mimo ich wysokiej funkcjonalnosci chetnie widzialbym jakies inne, byc moze lepsze rozwiazanie. Niestety moje procedury maja ograniczenie jesli w danych wystepuje pole tekstowe, przy pewnej dlugosci linijki (tej rozdzielanej tabulacjami) po prostu sie nie miesci...

Szukalem i probowalem roznych komponentow co do ktorych autorzy twierdzili, ze robia to, czego ja chce, ale niestety okazuje sie, ze nie robia :)

Pozdrowka all

0

Co się nie mieści? Możesz jaśniej?

0

no moge :)

Nie miesci sie cala zawartosc pola ze wzgledu na ograniczenie dlugosci linii. To podobny efekt jak wtedy gdy probujesz wczytac do notatnika baaardzo dluga linijke tekstu - w koncu mu sie nie zmiesci :)

0

No to pole się nie mieści dla edycji i wynika to z ogranizeń obiektów które to mają wyświetlić ale normalnie w pliku masz to co zapisałeś. Więc w czym problem? Pytasz o mozliwosc zapisu/odczytu z/do pliku czy o komponent do wyświetlania?

0

Pytanie z troche innej beczki, ale w sumie do pokrewnego zastosowania.

Dawno nie bawilem sie delphi i troche mi sie zapomnialo. Jak mozna prosto formatowac dane ?? Jest co prawda format, ale ja potrzebuje w druga strone.

Inaczej: szukam odpowiednika scanf z C (bo format mozna uznac od biedy za printf).

Pozdroffka

0

Do Marmara

Hmmm widze ze temat Ci raczej obcy... Chodzi o to ze normalnie jak chcesz miec kontrolki powiazane z bazami danych potrzebujesz ze swoim programem instalowac BDE albo inny system bazodanowy.

Ja pisze program ktory ma sie uruchamiac z CD BEZ INSTALOWANIA CZEGOKOLWIEK, a jednoczesnie ma wczytywac i zonglowac danymi, najlepiej z wykorzystaniem kontrolek bazodanowych.

Napisalem caly program z wszystkimi procedurami, ktore wczytuja i operuja na plikach tekstowych rozdzielanych tabulacjami (wyglada to tak:
dana1 \t dana2 \t dana3 \t dana4 itd). Kazdy rzadek pliku to nowy rekord, a w danych pojawiaja sie zawartosci pol tekstowych, nieraz bardzo dlugich (odpowiednik "memo"). Staram sie dostosowac te dane do mozliwej dlugosci linijki, ale wolalbym jakis mechanizm, ktory nie ma takiego ograniczenia.

Tak wiec zastanawiam sie czy istnieje jakis komponent umozliwiajacy odczyt z pliku danych i osadzenie ich w programie tak jak kazdej innej bazy danych z mozliwoscia polaczenia ich z kontrolkami bazodanowymi. Takie cos byloby super, a szczerze mowiac sam nie mam czasu zeby pisac az tak rozbudowana rzecz. Stad moje pytanie.

RK

0

Odsyłam do II tomu ksiażki "Delphi 4. Vademecum profesjonalisty". Tam w rozdziale "Zaawansowane programowanie bazodanowe" jest opisane konstruowanie zbioru danych niezależnego od BDE na przykładzie pliku rekordowego i pliku z listą indeksową jako prostą tabelą bazy danych. Jakoś nie czuję się na siłach przepisywać to, a poza tym takie ciągłe łamanie praw autorskich... :)

0

Heh , no szkoda brodny, że nie napsiałeś tego, może zrozumiałbym o co chodziło RK (zakładam że Ty brodny zrozumaiłeś:)). Ja mam wrażenie RK, że nie bardzo Ci sie chce napisac kilka linijek kodu, który w zaleznosci od wielkosci pola w rekordzie wyswietlalby dane w TEdit albo w Tmemo i zadajesz najbardziej popularne pytanie na tym forum:"hej czy jest jakis komponent ktory...coś tam". Przeciez to o co pytasz RK jest banalne i nie wymaga żadnej wiedzy na temat baz danch a juz na pewno nie wymaga żadnego molocha w rodzaju BDE.
P.S. No , albo nadal nie rozumiem:)

0

Glownie do Marmara

Niestety nie o to chodzi.

  1. problem:
    Pliki tekstowe nie sa plikami rekordowymi, a dane zebrane w linijke rozdzielana tabulacjami wygladaja tak:
    numer1 numer2 numer3 pole_tekstowe1
    123 12121 1223234 sd fdasf sda fdasf das f(baarrdzo dlugi tekst)
    123 12121 1223234 sd fdasf sda fdasf das f(baarrdzo dlugi tekst)
    123 12121 1223234 sd fdasf sda fdasf das f(baarrdzo dlugi tekst)
    123 12121 1223234 sd fdasf sda fdasf das f(baarrdzo dlugi tekst)
    123 12121 1223234 sd fdasf sda fdasf das f(baarrdzo dlugi tekst)
    Wczytywanie takiego pliku linijka po linijce konczy sie ucieciem kawalka jej dlugosci jesli jest zadluga.

  2. problem:
    dane wczytane z takiego pliku (po pocieciu linijki po tabulacjach) nie funkcjonuja w sposob dostepny dla kontrolek Data Aware Controls (czyli powiazanych z danymi). "Dzieki temu" trzeba pisac do kazdej czynnosci znacznie wiecej kodu, zeby np TMemo zaczelo wyswietlac zawartosc pole_tekstowe1.

  3. problem:
    Kontrolka o ktorej mysle, ze moglaby wczytywac takie dane bez ograniczen wielkosci, i od razu "podsuwalaby je" kontrolkom Data Aware, ktore automatycznie, przy zmianie rekorku wyswietlalyby jego zawartosc...

No nie wiem jak prosciej to wylozyc :)

RK

0

No i wreszcie

Sam znalazlem, choc na razie testuje czy robi dokladnie to i dokladnie tak jak ja chce. Kontrolka TdxMemData autorstwa Developer Express http://www.devexpress.com

0

No jeśli znalazłes to dobrze. Mnie chodziło o to że można takie coś samemu napisać - nie za wiele przy tym pracy ale mieć własne plus satysfakcję:)

0

No mozna napisac, zwykle to robie ale teraz naprawde nie mialem czasu... na razie robi prawie wszystko co chce ale ma przedziwne ograniczenia pamieci... rozpracowuje to :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1