Bir dizi büyük dosyada arama yapmaya ve metnin bölümlerini değiştirmeye çalışıyorum, ancak hatalara devam ediyorum. Özür (Büyük dosyaları hızlı okuma/yazma için .NET kullanın
ben bu çalıştı, ama bazen ben powershell bir 'bellek yetersiz' hatası alırsınız
#region The Setup
$file = "C:\temp\168MBfile.txt"
$hash = @{
ham = 'bacon'
toast = 'pancakes'
}
#endregion The Setup
$obj = [System.IO.StreamReader]$file
$contents = $obj.ReadToEnd()
$obj.Close()
foreach ($key in $hash.Keys) {
$contents = $contents -replace [regex]::Escape($key), $hash[$key]
}
try {
$obj = [System.IO.StreamWriter]$file
$obj.Write($contents)
} finally {
if ($obj -ne $null) {
$obj.Close()
}
}
sonra ben (İMKB) bu çalıştı, ancak bir pop-up mesajı ile çöküyor taraftan hata var) ve
$arraylist = New-Object System.Collections.ArrayList
$obj = [System.IO.StreamReader]$file
while (!$obj.EndOfStream) {
$line = $obj.ReadLine()
foreach ($key in $hash.Keys) {
$line = $line -replace [regex]::Escape($key), $hash[$key]
}
[void]$arraylist.Add($line)
}
$obj.Close()
$arraylist
ve son olarak İMKB'ye yeniden dener yok, ben böyle bir şeye rastladı, ama düzgün nasıl kullanılacağını emin değilim, ve ben bile emin değilim eğer bu konuda doğru yoldan gidersem. Herhangi bir öneri çok takdir edilecektir.
Tamam, ben herhangi satırları nasıl elde edersiniz ben bitirdim sonra İlk 1000 ile mi? –
Yardım dosyasından: '-ReadCount Boru hattı üzerinden bir defada kaç tane içerik satırının gönderildiğini belirtir. Varsayılan değer 1'dir. 0 (sıfır) değeri, tüm içeriği bir kerede gönderir. Bu parametre, görüntülenen içeriği değiştirmez, ancak içeriği görüntülemek için gereken süreyi etkiler. ReadCount değeri arttıkça, ilk satırı döndürmek için gereken süre artar, ancak işlemin toplam süresi azalır. Bu, çok büyük öğelerde algılanabilir bir fark yaratabilir ' –
Kiran
Örneğim, okuduğum aynı dosyaya yazmaya çalışıyorumsa işe yarıyor mu? –