How to Effortlessly Process Text Files One by One
It’s not so inconvenient to write a text file to an Excel file to process it. But you need a special program to process multiple text files. Programming languages have their own ways to do this. Certain languages take very roundabout ways.
Here’s a simple task. There are text files. Each consists of numbers separated by spaces and they have different row counts and column counts. To write a repeatedly executable algorithm to calculate the average of all numbers in a specified file each time, JAVA produces the following code:
import java.io.BufferedReader; import java.io.IOException; import java.io.FileReader; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import java.util.ArrayList;
public class Week04 { public static void main(String[] args) throws IOException { String theFile; double theAverage; theAverage = getTheAverage(theFile); displayTheResult(theAverage,"The average is;"); }
public static String getTheFileName() { String theFile; JFileChooser jfc = new JFileChooser(); jfc.showOpenDialog(null); return theFile = jfc.getSelectedFile().getAbsolutePath(); }
public static double getTheAverage(String s) throws IOException { double value = 0, numValues = 0; FileReader fr = new FileReader(s); BufferedReader br = new BufferedReader(fr); String aLine; while ((aLine = br.readLine()) != null) { String nums[] = aLine.split(""); For (int i=0;i<nums.length;i++){ value += Double.parseDouble(nums[i]); numValues++; } } if (numValues > 1) { return value/numValues; } else { return value; }
} public static void displayTheResult(double x, String s){ JOptionPane.showMessageDialog(null,s + x); } } |
It’s horrible. Almost same effect if you get it done in C and BASIC. Python is simpler yet adopts a same way of thinking. Besides, they all require complicated configurations.
The coding would turn effortless and smooth if you choose to do the task with esProc. Only several lines are enough:
A |
B |
|
1 |
=file(pFile).import@i() |
/ Read in a file through parameter pFile that passed in d:\fo.txt, for example |
2 |
=A1.(~.array(" ")) |
/ Split each line into numbers by spaces |
3 |
=A2.conj() |
/ Concatenate all numbers |
4 |
=A3.avg(float(~)) |
/ Convert numbers into floating-point type and calculate average |
esProc is a scripting language that allows repeated execution on IDE and being called from the command line.
More examples can be found in CSV File Comparison.
Read HERE to find an easy way to merge and summarize Excel files.
Read Structured Text Computations with esProc learn esProc methods of structured text processing in different scenarios.
esProc is the file processor tool that is ready to use, simple to configure and powerful to process. See Data File Processor.
Read Getting Started with esProc to download and install esProc, get a license for free and find related documentation.
SPL Official Website 👉 https://www.scudata.com
SPL Feedback and Help 👉 https://www.reddit.com/r/esProcSPL
SPL Learning Material 👉 https://c.scudata.com
SPL Source Code and Package 👉 https://github.com/SPLWare/esProc
Discord 👉 https://discord.gg/cFTcUNs7
Youtube 👉 https://www.youtube.com/@esProc_SPL