Text Processor
To create a text processor program in Go, follow these steps:
Step 1: Initialize the Go Module
First, create a new directory for your project and initialize the Go module.
mkdir textprocessor
cd textprocessor
go mod init github.com/username/textprocessor
Step 2: Create the processor.go
File
Create a lib/processor.go
file to handle the text processing functionality.
// processor.go
package lib
import (
"bufio"
"os"
"strings"
)
// ProcessText processes the input text and applies transformations.
func ProcessText(text string) string {
// Example transformation: convert text to uppercase
return strings.ToUpper(text)
}
// ReadFile reads the content of a file.
func ReadFile(filePath string) (string, error) {
data, err := os.ReadFile(filePath)
if err != nil {
return "", err
}
return string(data), nil
}
// ReadStdin reads the content from standard input.
func ReadStdin() (string, error) {
reader := bufio.NewReader(os.Stdin)
var sb strings.Builder
for {
input, err := reader.ReadString('\n')
if err != nil {
break
}
sb.WriteString(input)
}
return sb.String(), nil
}
Step 3: Create the main.go
File
Create a main.go
file to use the text processing functionality.
// main.go
package main
import (
"flag"
"fmt"
"os"
"github.com/username/textprocessor/lib"
)
func main() {
file := flag.String("file", "", "Path to the file")
flag.Parse()
var data string
var err error
if *file != "" {
data, err = lib.ReadFile(*file)
if err != nil {
fmt.Printf("Error reading file: %v\n", err)
os.Exit(1)
}
} else {
data, err = lib.ReadStdin()
if err != nil {
fmt.Printf("Error reading stdin: %v\n", err)
os.Exit(1)
}
}
result := lib.ProcessText(data)
fmt.Println(result)
}
Step 4: Run the Program
Run the program using the go run
command.
To process text from a file:
go run main.go --file example.txt
To process text from standard input:
cat example.txt | go run main.go
Replace example.txt
with the path to your file. This will process the text and apply the transformations specified in the ProcessText
function.
Last modified: 08 January 2025