Как разобрать это в юли? - PullRequest
2 голосов
/ 13 февраля 2020
julia> a= readline("/root/rock.txt")
"\x01\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x05\0\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\a\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0"

рок - это просто случайный файл, содержащий некоторый случайный текст.

julia> pointexp =parse(a)
ERROR: MethodError: no method matching parse(::String)
Closest candidates are:
  parse(::Type{T<:Integer}, ::AbstractChar; base) where T<:Integer at parse.jl:41
  parse(::Type{T<:Integer}, ::AbstractString; base) where T<:Integer at parse.jl:240
  parse(::Type{T<:Real}, ::AbstractString; kwargs...) where T<:Real at parse.jl:378
  ...
Stacktrace:
 [1] top-level scope at REPL[6]:1

Ответы [ 2 ]

4 голосов
/ 13 февраля 2020

Скорее всего, вы хотите получить необработанные байты вашего String для дальнейшей обработки. Это можно получить, передав String конструктору Vector{UInt8}() - см. Пример ниже:

julia> some_text = "\x01\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x03\0\0\0";                        

julia> Vector{UInt8}(some_text)                                        
20-element Array{UInt8,1}:                                             
 0x01                                                                  
 0x00                                                                  
 0x00                                                                  
 0x00                                                                  
 0x00                                                                                                                              
    ⋮                                                                                                                                   
 0x00                                                                  
 0x03                                                                  
 0x00                                                                  
 0x00                                                                  
 0x00                                                                  
4 голосов
/ 13 февраля 2020

Если вы хотите представить каждый символ как целое число, вы можете, конечно, заменить

julia> s = "\x01\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x05\0\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\a\0\0\0\0\0\0\0\b\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0";

julia> [Int(c) for c in s]
72-element Array{Int64,1}:
 1
 0
 0
 0
...

Int на любой другой тип целого числа.

...