remove_3till5char.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // remove_first6char.go
  2. package main
  3. import (
  4. "bufio"
  5. "fmt"
  6. "io"
  7. "os"
  8. )
  9. func main() {
  10. inputFile, _ := os.Open("goprogram")
  11. outputFile, _ := os.OpenFile("goprogramT", os.O_WRONLY|os.O_CREATE, 0666)
  12. defer inputFile.Close()
  13. defer outputFile.Close()
  14. inputReader := bufio.NewReader(inputFile)
  15. outputWriter := bufio.NewWriter(outputFile)
  16. var outputString string
  17. for {
  18. // inputString, readerError := inputReader.ReadString('\n')
  19. inputString, _, readerError := inputReader.ReadLine()
  20. if readerError == io.EOF {
  21. fmt.Println("EOF")
  22. break
  23. }
  24. //fmt.Printf("The input was: --%s--", inputString)
  25. if len(inputString) < 3 {
  26. outputString = "\r\n"
  27. } else if len(inputString) < 5 {
  28. outputString = string([]byte(inputString)[2:len(inputString)]) + "\r\n"
  29. } else {
  30. outputString = string([]byte(inputString)[2:5]) + "\r\n"
  31. }
  32. //fmt.Printf("The output was: --%s--", outputString)
  33. _, err := outputWriter.WriteString(outputString)
  34. //fmt.Printf("Number of bytes written %d\n", n)
  35. if err != nil {
  36. fmt.Println(err)
  37. return
  38. }
  39. }
  40. outputWriter.Flush()
  41. fmt.Println("Conversion done")
  42. }