Wolfram言語

システムレベルの機能

アメリカ合衆国の州をソケットで読み取って構文解析する

ソケットは,その他のストームすべてと同様に,ストリーム操作を使って読み取って構文解析することができる.

テキストデータを含むサーバへの接続を開く.

In[1]:=
Click for copyable input
socket = SocketConnect["http://exampledata.wolfram.com"]
Out[1]=

アメリカ合衆国の州すべてを含むテキストファイルに対して,GETのリクエストを含むコマンド1行を書く.

In[2]:=
Click for copyable input
WriteLine[socket, "GET /50states.txt HTTP/1.0 \n"]

応答の第1行を読み取る.

In[3]:=
Click for copyable input
ReadLine[socket]
Out[3]=

残りの行すべてを読み取る.

In[4]:=
Click for copyable input
output = ReadString[socket];

文字列の真ん中を調べ、デリミタで新改行された州のリストの最初を見付ける.

In[5]:=
Click for copyable input
StringTake[output, {277, 347}]
Out[5]=

SemanticImportStringを使って出力の構文解析を行い,構文解析できなかった要素を削除する.

In[6]:=
Click for copyable input
states = DeleteMissing[SemanticImportString[output]]
Out[6]=

実際にすべての州が含まれていることを確かめる.

In[7]:=
Click for copyable input
Equal[Length[states], Length[EntityList[ EntityClass["AdministrativeDivision", "USStatesAllStates"]]]]
Out[7]=

ストリームを閉じる.

In[8]:=
Click for copyable input
Close[socket]

関連する例

de en es fr ko pt-br ru zh