09.12.2011, 11:25
Hallo Zusammen
Kann mir jmd helfen.
Ich habe eine Binärdatei, welche mit Matlab erstellt wurde und möchte diese in Labview einlesen und dann weiter bearbeiten.
Zur Zeit wurde es mit einem .c-Code umgewandelt. Leider sind meine .c Kenntnisse sehr bescheiden.
Gibt es eine einfache Variante, um diese Datei mit Labview umzuwandeln?
mfg Martin
PS: Habe diesen Link im Forum gefunden, jedoch habe ich kein Matlab
Anhang: Decode c-File;
c-Code:
Kann mir jmd helfen.
Ich habe eine Binärdatei, welche mit Matlab erstellt wurde und möchte diese in Labview einlesen und dann weiter bearbeiten.
Zur Zeit wurde es mit einem .c-Code umgewandelt. Leider sind meine .c Kenntnisse sehr bescheiden.
Gibt es eine einfache Variante, um diese Datei mit Labview umzuwandeln?
mfg Martin
PS: Habe diesen Link im Forum gefunden, jedoch habe ich kein Matlab
Anhang: Decode c-File;
c-Code:
Zitat:/*this decode program works under windows - no clue if this also works under linux - i doubt so...*/
/* syntax is decode.exe xxxxx.datalog */
/* this converts the datalog file to a textfile with max 50 spotentries - so if the file containes more spots you have to change this...*/
qa
# include <stdlib.h>
# include <stdio.h>
# include <string.h>
# define BUFF 64
# define MAXNBR 64
int main( int argc, char * argv[] )
{
int i[BUFF],j,counts,lastnbr,firstnbr;
int fsize,ii[20000],q,t;
char workstr[16],str[1024];
int maxspots=50;
FILE *fd;
FILE *fout;
fd = fopen (argv[1],"r");
if (fd == NULL)
{
printf( "Error opening infile: %s\n", argv[1] );
return 0;
}
fread (&ii,20000,1,fd);
close(fd);
/*create the filename of the outputfile*/
sprintf(str,"%s_txt",argv[1]);
fout = fopen (str,"w");
if (fd == NULL)
{
printf( "Error opening outfile: %s\n", str );
return 0;
}
/*
spot presappl delay mon1dose mon2dose usum tsum uexp ucal texp tcal ufwhexp ufwhcal tfwhexp tfwhcal hexp hcal x y z range1 range2 clockungat clockantia ADG3nominal ADG3actual clkSUMgat clkSUMungat mon1SUMungat mon1SUMgat mon2SUMungat ILK-Flag Kleak_corr mon2gt dmaf1 LBinzIC dmad1l dmad1r kma3 kma5 ama1 mon1ungat mongungat guardungat mon1gtA ame1 ame2 mmac3a alpha beta beta_ex fme1L fme1R mmec1a miniStrT0 miniStrT1 miniStrT2 miniStrT3 miniStrT4 miniStrU0 miniStrU1 miniStrU2 miniStrU3 miniStrU4
*/
firstnbr=lastnbr=counts=0;
q=0;
i[0]=1;
/*write first line*/
printf("spot presappl delay mon1dose mon2dose usum tsum uexp ucal texp tcal ufwhexp ufwhcal tfwhexp tfwhcal hexp hcal x y z range1 range2 clockungat clockantia ADG3nominal ADG3actual clkSUMgat clkSUMungat mon1SUMungat mon1SUMgat mon2SUMungat ILK-Flag Kleak_corr mon2gt dmaf1 LBinzIC dmad1l dmad1r kma3 kma5 ama1 mon1ungat mongungat guardungat mon1gtA ame1 ame2 mmac3a alpha beta beta_ex fme1L fme1R mmec1a miniStrT0 miniStrT1 miniStrT2 miniStrT3 miniStrT4 miniStrU0 miniStrU1 miniStrU2 miniStrU3 miniStrU4");
fputs("spot presappl delay mon1dose mon2dose usum tsum uexp ucal texp tcal ufwhexp ufwhcal tfwhexp tfwhcal hexp hcal x y z range1 range2 clockungat clockantia ADG3nominal ADG3actual clkSUMgat clkSUMungat mon1SUMungat mon1SUMgat mon2SUMungat ILK-Flag Kleak_corr mon2gt dmaf1 LBinzIC dmad1l dmad1r kma3 kma5 ama1 mon1ungat mongungat guardungat mon1gtA ame1 ame2 mmac3a alpha beta beta_ex fme1L fme1R mmec1a miniStrT0 miniStrT1 miniStrT2 miniStrT3 miniStrT4 miniStrU0 miniStrU1 miniStrU2 miniStrU3 miniStrU4",fout);
/*while (fread (&i,4*BUFF,1,fd)) */
while (i[0]>0)
{
for (t=0;t<BUFF;t++)
{
i[t]=ii[q*BUFF+t];
}
q++;
if (i[0] > 0)
{
if (firstnbr == 0) firstnbr=i[0];
if (lastnbr <= i[0]) /*spotnumbers are always increasing! */
{
lastnbr=i[0];
counts++;
sprintf(str,"\n");
for (j=0;j<MAXNBR;j++)
{
sprintf(workstr," %d",i[j]);
strcat(str,workstr);
}
fputs(str,fout);
printf("%s",str);
}
else if (i[0] == 1) /*more than 1 field in the binary file*/
{
printf("\n%d lines, Spot %d ... Spot %d\n",counts,firstnbr,lastnbr);
lastnbr=i[0];
counts=1;
sprintf(str,"\n");
for (j=0;j<MAXNBR;j++)
{
sprintf(workstr," %d",i[j]);
strcat(str,workstr);
}
fputs(str,fout);
}
}
}
fclose(fd);
fclose(fout);
printf("\n%d lines, Spot %d ... Spot %d\n",counts,firstnbr,lastnbr);
}