Create Cleaned Up Version of a Plain Text File
hrodstein
// WriteStrippedDataToNewFile(refNum, pathName, origFileName, newFileName)
// Creates new file containing cleaned up contents of original file.
// The original file is assumed to be a plain text file.
// The following are removed from the data:
// All control characters except for carriage-return (0x0D)
// All characters with codes greater than 0x7F (characters not in standard ASCII set)
// If newFileName exists, it is overwritten.
Function WriteStrippedDataToNewFile(pathName, origFileName, newFileName)
String pathName // Symbolic path where new original file exists
String origFileName // Name of file containing original data
String newFileName // Name of new file into which clean data is written
Variable refNum // RefNum of raw data file
Open/R/P=$pathName refNum as origFileName
if (strlen(S_fileName) == 0)
return -1 // Error or user canceled from open file dialog.
endif
FStatus refNum // Sets V_logEOF to number of bytes in file
Variable numBytesInFile = V_logEOF
Make/O/B/U/N=(numBytesInFile) tempRawData
FBinRead refNum, tempRawData // Load raw data
Variable numBytesAvailableInCleanData = numBytesInFile
Make/O/B/U/N=(numBytesAvailableInCleanData) tempCleanData
Variable numCleanBytes = 0
Variable ch
Variable i
for(i=0; i<numBytesInFile; i+=1)
ch = tempRawData[i]
if (ch<0x80 && (ch>=0x20 || ch==0x0D))
tempCleanData[numCleanBytes] = ch
numCleanBytes += 1
endif
endfor
DeletePoints numCleanBytes, numBytesAvailableInCleanData - numCleanBytes, tempCleanData
// Write clean data out to new file
Variable cleanRefNum
Open/P=$pathName cleanRefNum as newFileName
FBinWrite cleanRefNum, tempCleanData
Close cleanRefNum
KillWaves/Z tempRawData, tempCleanData
return 0
End
// Creates new file containing cleaned up contents of original file.
// The original file is assumed to be a plain text file.
// The following are removed from the data:
// All control characters except for carriage-return (0x0D)
// All characters with codes greater than 0x7F (characters not in standard ASCII set)
// If newFileName exists, it is overwritten.
Function WriteStrippedDataToNewFile(pathName, origFileName, newFileName)
String pathName // Symbolic path where new original file exists
String origFileName // Name of file containing original data
String newFileName // Name of new file into which clean data is written
Variable refNum // RefNum of raw data file
Open/R/P=$pathName refNum as origFileName
if (strlen(S_fileName) == 0)
return -1 // Error or user canceled from open file dialog.
endif
FStatus refNum // Sets V_logEOF to number of bytes in file
Variable numBytesInFile = V_logEOF
Make/O/B/U/N=(numBytesInFile) tempRawData
FBinRead refNum, tempRawData // Load raw data
Variable numBytesAvailableInCleanData = numBytesInFile
Make/O/B/U/N=(numBytesAvailableInCleanData) tempCleanData
Variable numCleanBytes = 0
Variable ch
Variable i
for(i=0; i<numBytesInFile; i+=1)
ch = tempRawData[i]
if (ch<0x80 && (ch>=0x20 || ch==0x0D))
tempCleanData[numCleanBytes] = ch
numCleanBytes += 1
endif
endfor
DeletePoints numCleanBytes, numBytesAvailableInCleanData - numCleanBytes, tempCleanData
// Write clean data out to new file
Variable cleanRefNum
Open/P=$pathName cleanRefNum as newFileName
FBinWrite cleanRefNum, tempCleanData
Close cleanRefNum
KillWaves/Z tempRawData, tempCleanData
return 0
End
Forum
Support
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More