Odczyt z pliku .txt i wyswietlenie w oknie

Jeśli masz problem z LabWindows napisz, postaramy się pomóc.
Dawid R.
Posty: 1
Rejestracja: 12 wrz 2013 14:44
Wersja środowiska: LabVIEW 2012

Odczyt z pliku .txt i wyswietlenie w oknie

Post autor: Dawid R. » 12 wrz 2013 14:51

Witam

Napisałem program który zapisuje do pliku tekstowego liczbe jak i litery (Zadana - liczby, Input - litery). Chciałbym teraz to odczytać i wysietlić w oknie output, ale nie wychodzi mi. w jaki sposób to prawidłowo robić? Z góry dziękuję za pomoc!

Kod: Zaznacz cały

#include <ansi_c.h>
#include <formatio.h>
#include <cvirte.h>		
#include <userint.h>
#include "My.h"

static int panelHandle;
char value[200], buf[20], buf2[20];
int liczba;
FILE *fp; 

int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;	/* out of memory */
	if ((panelHandle = LoadPanel (0, "My.uir", PANEL)) < 0)
		return -1;
	DisplayPanel (panelHandle);
	RunUserInterface ();
	DiscardPanel (panelHandle);
	return 0;
}


int CVICALLBACK ZapiszCB (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{				 

	switch (event)
	{
		case EVENT_COMMIT:
			   
			GetCtrlVal (PANEL, PANEL_ZADANA, &liczba);
			SetCtrlVal (PANEL, PANEL_WSKAZNIK, liczba);
		
			GetCtrlVal (PANEL, PANEL_STRINGINPUT, value);
			SetCtrlVal (PANEL, PANEL_STRINGOUTPUT, value);
			   
			   
			

		//	fp=fopen("D:\\test.txt", "a");
		//			fprintf (fp, "LINIA;");
		//			fprintf (fp, "MASZYNA;");
		//			fprintf (fp, "GODZINA;");
		//			fprintf (fp, "DATA;");
		//			fprintf (fp, "ID RPT;");					
		//			fprintf (fp, "12NC;");
		//			fprintf (fp, "ZLECENIE;");
		//			fprintf (fp, "ILOSC TEST;"); 
		//			fprintf (fp, "DO;"); 
		//			fprintf (fp, "AT;");
		//			fprintf (fp, "DT\n"); 
		//			fprintf (fp, "%s;", value);
		//			fclose (fp);

			
			Fmt (buf, "%s<%i", liczba);	   // konwesja z liczby int do char
					
    		fp = fopen ("D:\\test.txt", "a");
    				fputs(value, fp);
					fputs(buf, fp);
    				fputs(".................\n", fp);
    				fputs(".................\n", fp);
   					fclose(fp);
					
			fp=fopen("D:\\test.txt", "r");
			//Fmt (buf2, "%s<%i", fp);
			SetCtrlVal (PANEL, PANEL_STRINGOUTPUT, &fp);		
			break;
	}
	return 0;
}


int CVICALLBACK ExitCB (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			
			QuitUserInterface (0);
			
			break;
	}
	return 0;
}

Załączniki
Nowy folder (2).zip
(309.54 KiB) Pobrany 163 razy
2.png
2.png (5.25 KiB) Przejrzano 3507 razy

Grzesiek080
Posty: 82
Rejestracja: 26 maja 2009 07:18
Wersja środowiska: LabVIEW 2012
Lokalizacja: Sucha Beskidzka
Kontakt:

Re: Odczyt z pliku .txt i wyswietlenie w oknie

Post autor: Grzesiek080 » 13 wrz 2013 08:45

Nie znam sie za bardzo na CVI ale w examples (help/Find examples) jest duuuzo przykladów zapisu do i odczytu z pliku.
MOzesz to wykorzytac.

Awatar użytkownika
maciekwp
Posty: 46
Rejestracja: 03 kwie 2007 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Warszawa

Re: Odczyt z pliku .txt i wyswietlenie w oknie

Post autor: maciekwp » 07 paź 2013 21:11

Trochę odgrzewane ale problemem w tym przypadku jest użycie niewłaściwej funkcji przy odczycie. Przy zapisie używa się funkcji "Fmt" ale przy odczycie to już trzeba "Scan".
Co więcej jeśli zapis do pliku ASCII to może warto zapisywać/odczytywać liniami (WriteLine/ReadLine). Łatwiej potem poruszać się po pliku.
w palcu siła...

ODPOWIEDZ