Witam.
Mam pewien problem. Jak mozna wywnioskowac z tematu, musze dopisac pewne dane (wyniki pomiarow) w konkretnym miejscu pliku. Stala jest odleglosc od konca pliku, wiec z ustawieniem kursora w odpowiednim miejscu nie ma problemu. Problem polega na tym, ze bloczek 'Write file' nadpisuje mi dane umieszczone w pliku zamiast je dopisywac.
Chcialem zapytac, czy istnieje mozliwosc konfiguracji zapisu tak, aby dane byly dopisywane zamiast nadpisywane? Jak mozna sie domyslec nie jest to pozadane zachowanie w przypadku zbierania danych pomiarowych Moze stosuje niewlasciwy bloczek? Moze jest inna funkcja do tego przeznaczona? Z gory zaznaczam jednak, ze mam LV7.1 Base, wiec zadne toolkity nie wchodza w gre
Z góry dziekuje za pomoc
Ostatnio zmieniony 25 lip 2006 07:57 przez Ender, łącznie zmieniany 1 raz.
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
porządane / nieporządane ... zależy jak chcesz.
tak jak chcesz ładować w środek pliku to proponuje odczytywać to co jest w pliku do tej pory (masz sobie stringa z którym możesz zrobić co Ci się żywnie podoba, podopisywać gdzie co i jak chcesz) a po zmianie zapisać (zastępując to co w pliku nowo powstałym stringiem).
jak robie roport to plik wzorcowy raportu *.rep wygląda sobie tak:
bleble <P1>
bleble ble bleble <P2.1>
ciągne z niego stringa, w miejsca <P*> wkładam to co chce i zapisuje w plik i puszczam na drukarke. dzieki temu pliki wyglądają zgrabnie, tak jak chce a i druk jest okej (bo na różnych drukarkach spacja miewa różną długość).
Calkiem ciekawa metoda, na pewno skuteczna, ale mimo wszystko wydaje mi sie droga troche 'na okolo'. W labview jest funkcja 'seek', ktora pozwala na ustawienie kursora w odpowiednim miejscu pliku. Dla mnie logicznym rozwiazaniem bylaby mozliwosc wyboru, co chcemy zrobic - nadpisac czy dopisac. Niestety nie moge sie jej doszukac ...
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Jestem prawie pewien, że nie da się czegoś nowego wcisnąć w środek pliku. Funkcja Seek może ustawić kursor gdzieś w środku, ale plik jest zawsze nadpisywany.
Dla mnie logicznym rozwiazaniem bylaby mozliwosc wyboru, co chcemy zrobic - nadpisac czy dopisac.
Ale pewnie nie jest to logiczne z punktu widzenia obsługi dysku i dlatego nie ma takiej możliwości. Z tego co pamiętam np. w C też się tak nie da.
No tak, przyznam, ze nawet do glowy mi to nie przyszlo ... Caly misterny plan poszedl w ... las Pozostaje wiec chyba zabawa ze stringami.
Dziekuje bardzo za pomoc i oswiecenie
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
poczatkowy tekst
dane zapisywane
(dane zapisywane dallej nastepne wywolanei funkcji zapisu do pliku)
tekst koncowy
W wyniku utworzenie pierwszy raz pliku musisz zapisac poczatkowy tekst i dane zapisywane. W dalszej części juz w łątwy sposob mozna ustawic zeby dane byly dopisywane tak więc następne dane bedziesz dopisywal do tego pliku (na koncu). To bedzie plik tymczasowy. Plik końcwy wrzuca to wszystko co masz w tymczasowym i dopisuje do neigo tekst koncowy. Chyba inaczej sie nie da.
pozdrawiam
Czy plik jest tekstowy ew. tablica?
Jeśli tak, to można odczytać, wykorzystać Conncatenate String ew. Find Match for Pattern (zwraca string przed, znaleziony i po) lub operacje na tablicy i zapisać z opcją nadpisania pliku.
@piotrp - sytuacja nie jest taka prosta. Tekst koncowy nie jest staly, ma tylko stala dlugosc i jest modyfikowany z kazdym wpisaniem nowych danych pomiarowych. Poniewaz pomiary sa dokonywane przez dlugi okres czasu istnialoby ryzyko, ze np z powodu awarii zasilania koncowka pliku nie zostanie dopisana, a dane ktore powinny tam sie znalezc, zostana utracone.
@Mikrobi - tak, plik jest tekstowy, wiec wszystkie bloczki do obrobki stringow, szczegolnie 'find match for pattern' (conncatenate i tak wykorzystuje)na pewno bylyby bardzo przydatne, ale szczerze mowiac to nie bardzo chce mi sie bawic w ten sposob, bo to zmienialoby cala koncepcje i wymagalo troche pracy, a jest za cieplo zeby tyle myslec ;)
Po namysle doszedlem do wniosku, ze skoro i tak modyfikuje te koncowke pliku, to rownie dobrze moge ja za kazdym razem nadpisywac - w koncu nie jest to jakies monstrum. Ustawiam kursor w miejscu, gdzie maja byc nowe dane, a reszte pliku dopisuje na biezaco.
No ale przynajmniej znowu dowiedzialem sie czegos nowego. Szkoda, ze tym razem byla to lekcja pt 'Tego sie nie da' ;)
Jeszcze raz dziekuje wszystkim za rady i pomoc
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....