$content = Get-Content 'j:\Softwareprojekte\IBKRTrader\IBKRTrader\ct_raw.html' -Raw # Simuliere UnescapeHtmlPayload $marker = 'self.__next_f.push([1,"' $searchFrom = 0 $allPayload = "" while ($true) { $idx = $content.IndexOf($marker, $searchFrom) if ($idx -lt 0) { break } $contentStart = $idx + $marker.Length # Finde Ende des Strings (nicht-escaped ") $end = -1 $i = $contentStart while ($i -lt $content.Length) { if ($content[$i] -eq '\' ) { $i += 2; continue } if ($content[$i] -eq '"' ) { $end = $i; break } $i++ } if ($end -lt 0) { break } $chunk = $content.Substring($contentStart, $end - $contentStart) # Un-escape \" → " $chunk = $chunk -replace '\\"', '"' $chunk = $chunk -replace '\\/', '/' $allPayload += $chunk $searchFrom = $end + 2 } Write-Host "Payload length: $($allPayload.Length)" # Finde "data":[ $dataIdx = $allPayload.IndexOf('"data":[') Write-Host "data array at: $dataIdx" if ($dataIdx -gt 0) { Write-Host "=== data array preview (first 500 chars) ===" $start = $dataIdx $len = [Math]::Min(500, $allPayload.Length - $start) Write-Host $allPayload.Substring($start, $len) # totalPages $tpMatch = [regex]::Match($allPayload, '"totalPages"\s*:\s*(\d+)') if ($tpMatch.Success) { Write-Host "" Write-Host "=== totalPages: $($tpMatch.Groups[1].Value) ===" } # _txId Anzahl zählen $txCount = ([regex]::Matches($allPayload, '"_txId"')).Count Write-Host "=== _txId Vorkommen: $txCount ===" } else { Write-Host "=== KEIN data Array - zeige erste 1000 chars des Payload ===" Write-Host $allPayload.Substring(0, [Math]::Min(1000, $allPayload.Length)) }