Dopisywanie danych do pliku tekstowego

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Dopisywanie danych do pliku tekstowego

Post autor: Ender »

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 ....
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: Dopisywanie danych do pliku tekstowego

Post autor: progor »

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ść).
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Re: Dopisywanie danych do pliku tekstowego

Post autor: Ender »

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 ....
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Dopisywanie danych do pliku tekstowego

Post autor: jogurt_owocowy »

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.
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Re: Dopisywanie danych do pliku tekstowego

Post autor: Ender »

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 ....
piotrp
Posty: 12
Rejestracja: 11 gru 2005 00:00
Lokalizacja: Kraków
Kontakt:

Re: Dopisywanie danych do pliku tekstowego

Post autor: piotrp »

Jesli masz otrzymac plik np:

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
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Dopisywanie danych do pliku tekstowego

Post autor: Mikrobi »

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.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Re: Dopisywanie danych do pliku tekstowego

Post autor: Ender »

@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 ....
ODPOWIEDZ