2012-05-13 6 views
1

ここで私のコードはイメージのすべてのバイトを読み込み、それをバイト配列に格納します。これらのバイトをasciiに変換してから512文字(ASCII文字)の長い部分に分割する方法はありますか?長さに基づいて文字列を分割しようとするときのように、あなたはそれを行うことができます。これを512の長さに分割するのと同様のことができますか?これは、サーバーに送信することです。私は本当にがしたいFile.ReadAllBytesの結果を分割します

byte[] imagesize; 
imagesize = File.ReadAllBytes(@"C:\image.jpeg"); 
Console.Write(imagesize[1].ToString()); 

は、(512-CHARにすべてのバイトを変換するから長いASCIIラインという分け、プレーンなASCII形式(だろうC#でEncoding.ASCII)にこれらのバイトを変換するのですか? )バイト配列(バイト[]チャンク)に長いチャンク。だから私ができるパケットを送るとき

for(i=0; i<AmountOfChunks; i++) 
{ 
     Packet.payload = chunks[i]; 
     //The "chunks" is the ASCII formated array. 
} 

誰かがこれを行う方法を知っていれば、それは大きく助けになるでしょう。ありがとう、もし何かがあれば、私はもっと詳しく説明するつもりです。 これが間違っている場合、私はバイトがそれぞれ8ビットであることを知っているからです。次に何とかそれをやることができるようにするために、多分バイトをリストに入れますか?

+0

は、なぜあなたはちょうどそのチャンクでそれを読んでいない作ってみますか – harold

+0

これらのコメントは本当に私が恐れていることは何も説明していません。正確にあなたがサーバーに送る必要があるものに関する詳細情報で質問を更新できますか? – harold

+0

@harold編集されました。 – Nom

答えて

2

明確でないなぜあなたはこれが必要ですが、Convert.ToBase64String()を探して文字列表記を取得している可能性があります。チャンキングのためにあなただけの適切なインデックスの結果の文字列と分割上を歩くことができます?

byte[] imagesize = File.ReadAllBytes(@"C:\image.jpeg"); 
string base64String = Convert.ToBase64String(imagesize); 

List<string> chunks = new List<string>(); 
for (int i = 0; i < base64String.Length; i+=512) 
{ 
    chunks.Add(base64String.Substring(i, Math.Min(512, base64String.Length - i))); 
} 
+0

パケットをサーバに送るには、最大長が512文字であるため、画像全体をサーバに送信するには、512チャンクに分割して1つずつ送信する必要があります。そこで私はreadallbytesを分割する方法を見つける必要がありました。ありがとう! – Nom

+0

@Nom:サーバーはASCII文字列のみを受け入れますか? – BrokenGlass

+0

ええ、私はそれをASCIIに変換する必要があるのですが、これを行うための適切なコードが分かっていれば、大きな助けとなります。 – Nom

0

この

int i=0; 
do 
{ 
    sendBytes = imagesize.Skip(512*i).Take(512).ToArray(); 
    //Your function of send 
    i++; 
} 
while(imagesize.Count()-512*i>0) 
関連する問題