Strona 1 z 1

Odczyt z pliku .txt i wyswietlenie w oknie

: 12 wrz 2013 14:51
autor: Dawid R.
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;
}


Re: Odczyt z pliku .txt i wyswietlenie w oknie

: 13 wrz 2013 08:45
autor: Grzesiek080
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.

Re: Odczyt z pliku .txt i wyswietlenie w oknie

: 07 paź 2013 21:11
autor: maciekwp
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.