【C#】文字列->圧縮処理->BASE64->解凍処理->文字列な処理コード

くまさん

神社,ダムと温泉好きな「システムアーキテクト」

おすすめ

3件のフィードバック

  1. 匿名 より:

    ==================================
    ちょっと整形 Compress.cs
    ==================================
    using System.Text;
    using System.IO;
    using System.IO.Compression;
    using System;

    public static class Compress{
    //——————————————
    //文字列を圧縮BASE64に変換して返す
    //——————————————
    public static string Base64FromStringComp(string st){
    // 文字列をバイト配列に変換します
    byte[] source = Encoding.UTF8.GetBytes(st);
    // 入出力用のストリームを生成します
    MemoryStream ms = new MemoryStream();
    DeflateStream CompressedStream = new DeflateStream(ms, CompressionMode.Compress, true);
    // ストリームに圧縮するデータを書き込みます
    CompressedStream.Write(source, 0, source.Length);
    CompressedStream.Close();
    // 圧縮されたデータを バイト配列で取得します
    byte[] destination = ms.ToArray();

    //Base64で文字列に変換
    string base64String;
    base64String = System.Convert.ToBase64String(destination, Base64FormattingOptions.InsertLineBreaks);
    return base64String;
    }
    //——————————————
    //BASE64文字列を戻し解凍の上で文字列に変換して返す
    //——————————————
    public static string StringFromBase64Comp(string st){
    byte [] bs = System.Convert.FromBase64String(st);
    // 入出力用のストリームを生成します
    MemoryStream ms = new MemoryStream(bs);
    MemoryStream ms2 = new MemoryStream();
    DeflateStream CompressedStream = new DeflateStream(ms, CompressionMode.Decompress);
    // MemoryStream に展開します
    while(true){
    int rb = CompressedStream.ReadByte();
    // 読み終わったとき while 処理を抜けます
    if (rb == -1){
    break;
    }
    // メモリに展開したデータを読み込みます
    ms2.WriteByte((byte)rb);
    }
    string result = Encoding.UTF8.GetString(ms2.ToArray());
    return result;
    }
    }

  2. くまさん より:

    >>匿名 さま

    投稿ありがとうございます!
    これからもごひいきに♪

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください