#### `switch` statement to match a text line
While outputing to the standard stream, it is also possible to use `switch` statement to **match a text line to a text line in a file.** I personally think it improve readability and maintainability in some applications.

```
import std;

void main(){

foreach (line; File("example.txt").byLine(No.keepTerminator, "\r\n")){
                switch(line) {
                   case "   HelloWorld"  :
                          writeln("|"~line~"|");
                          writeln("^This Line is here.");
                          break;

                   default :
                        writeln("|"~line~"|");
                }
        }
}
```

#### Reading file, matching line, changing the line, outputting to both: to a standard stream and another file; line by line

In this snippet, we are not only reading a file, editing its output and outputting to the standard output stream, but also try to save changes on another file: filling it with the edited output.

```
import std;

void main(){

        File edit = File("example2.txt", "w");
foreach (line; File("example.txt").byLine(No.keepTerminator, "\r\n")){
                switch(line) {
                   case "   HelloWorld":
                          edit.write("RandomWord\n");
                          writeln("|"~"RandomWord"~"|");
                          break;

                   default :
                        edit.write(line ~ "\n");
                        writeln("|" ~ line ~ "|");
                }
        }
        edit.close;
}
```

**Inputs:**
**Example.txt**

```
test
 s

   HelloWorld
t
ff

```


**Outputs:**
**stdout:**
```
|test|
| s|
| |
|RandomWord|
|t|
|ff|
```

**Example2.txt**
```
test
 s

RandomWord
t
ff

```

Reply via email to