Voor het importeren van een tekst bestand zit ik met een probleem dat deze eerst aangepast dient te worden. Nu kan ik dit telkens handmatig gaan doen maar het leek mij leuker en leerzamer om dit dmv een powershell script te doen.
Het uiteindelijke doel is het volgende :
1 Selecteer een tekst bestand om te bewerken
2 Rond alle getallen af naar hele getallen
3 Maak alle negatieve getallen positief
4 verwijder de laatste regel uit het tekst bestand
De inhoud van het bestand dat bewerkt moet worden is als volgt :
Het uiteindelijke bestand moet bevatten :
Na een avond googlen en trail and error ben ik tot het volgende gekomen :
Met mijn helaas nogal wat beperkte kennis loop ik helaas tegen een muur aan bij het afronden van de getallen. Zelfs met flink googlen lukt het me niet om dit opgelost te krijgen. Hopelijk kan iemand mij hier een duuwtje in de juiste richting geven.
Het uiteindelijke doel is het volgende :
1 Selecteer een tekst bestand om te bewerken
2 Rond alle getallen af naar hele getallen
3 Maak alle negatieve getallen positief
4 verwijder de laatste regel uit het tekst bestand
De inhoud van het bestand dat bewerkt moet worden is als volgt :
code:
1
2
3
4
| Getal1;5059,23;;Omschrijving getal 1 Getal2;-18320,87;;Omschrijving getal 3 Getal3;-0,69;;Omschrijving getal 3 Regel met te verwijderen tekst |
Het uiteindelijke bestand moet bevatten :
code:
1
2
3
| Getal1;5059;;Omschrijving getal 1 Getal2;18321;;Omschrijving getal 3 Getal3;1;;Omschrijving getal 3 |
Na een avond googlen en trail and error ben ik tot het volgende gekomen :
PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| ## Open bestand om te bewerken. Function Get-OpenFile($initialDirectory) { [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog $OpenFileDialog.initialDirectory = $initialDirectory $OpenFileDialog.filter = "Text files (*.txt)|*.txt" $OpenFileDialog.ShowDialog() | Out-Null $OpenFileDialog.filename $OpenFileDialog.ShowHelp = $true } $InputFile = Get-OpenFile ## Verwijder negatieve getallen door het - teken te verwijderen ## Replace ;- met - zodat niet het koppelteken in mogelijke tekst word vervangen (Get-Content $InputFile) | Foreach-Object { $_ -replace ';-', ';' ` } | Set-Content $InputFile ## Verwijder de laatste regel $output = Get-Content $InputFile -ReadCount 0 Set-Content $InputFile -Value ($output | Select-Object -First ($output.count-1)) |
Met mijn helaas nogal wat beperkte kennis loop ik helaas tegen een muur aan bij het afronden van de getallen. Zelfs met flink googlen lukt het me niet om dit opgelost te krijgen. Hopelijk kan iemand mij hier een duuwtje in de juiste richting geven.
[ Voor 4% gewijzigd door MrNOnamE op 14-12-2016 21:37 ]
☀️ 39 Panelen |⚡SolarEdge SE12.5K | 🔆 Panasonic 7KW KIT-WC07J3E5 | ❄❄❄❄ Mitsubishi SRK 20ZSX-W