![](/profiles/wavemetrics/themes/wavemetrics/logo.png)
Create Cleaned Up Version of a Plain Text File
![](/sites/default/files/styles/thumbnail/public/default_images/Artboard%201_1.png?itok=jeHOCIXy)
![](/profiles/wavemetrics/themes/wavemetrics/images/icons/employee-icon.png)
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
![](/sites/default/files/forum.png)
Forum
![](/sites/default/files/support.png)
Support
![](/sites/default/files/gallery.png)
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More