LoginSignup
1
1

More than 5 years have passed since last update.

Adodb.Stream

Posted at

職場で簡単なスクリプトを作るときに、意外とインストールとかしない縛りだと厳しいこともあるので、JScriptチート用。ファイルの読み書き用。

TypeScriptのPlaygroundにまるっとコピペするとコーディングがしやすい。

そしてこんなん用意するぐらいならpowershell_ise使ったほうが捗るのではと気づく。

stream.ts
namespace Adodb {

// https://msdn.microsoft.com/ja-jp/library/cc389884.aspx
export const enum StreamTypeEnum {
  adTypeBinary = 1,
  adTypeText = 2
}

// http://msdn.microsoft.com/ja-jp/library/cc389881.aspx
export const enum StreamReadEnum {
  adReadAll = -1,
  adReadLine = -2
}

// http://msdn.microsoft.com/ja-jp/library/cc389886.aspx
export const enum StreamWriteEnum {
  adWriteChar = 0,
  adWriteLine = 1
}

// http://msdn.microsoft.com/ja-jp/library/cc389870.aspx
export const enum SaveOptionEnum {
  adSaveCreateNotExist = 1,
  adSaveCreateOverWrite = 2
}

// https://msdn.microsoft.com/ja-jp/library/cc389826.aspx
export const enum LineSeparatorsEnum {
  adCR = 13,
  adCRLF = -1,
  adLF = 10
}

// https://msdn.microsoft.com/ja-jp/library/cc389847.aspx
export const enum ObjectStateEnum {
  adStateClosed = 0,
  adStateOpen = 1,
  adStateConnecting = 2,
  adStateExecuting = 4,
  adStateFetching = 8  
}

// https://msdn.microsoft.com/ja-jp/library/cc389773.aspx
export const enum ConnectModeEnum {
  adModeRead = 1,
  adModeReadWrite = 3,
  adModeRecursive = 0x400000,
  adModeShareDenyNone = 16,
  adModeShareDenyRead = 4,
  adModeShareDenyWrite = 8,
  adModeShareExclusive = 12,
  adModeUnknown = 0,
  adModeWrite = 2
}

// https://msdn.microsoft.com/ja-jp/library/cc364272.aspx
export interface Stream {
    Open() : void;
    Close(): void;
    Write(data: any): void;
    WriteText(data: string, option: StreamWriteEnum): void;
    Read(read?: StreamReadEnum): any;
    ReadText(read?: StreamReadEnum): string;
    Flush(): void;
    CopyTo(destStream: Stream, numChars?: number): void;
    SkipLine(): void;
    LineSeparator: LineSeparatorsEnum;
    EOS: boolean;
    SetEOS(eos: boolean): void;
    SaveToFile(fileName: string, saveOptions: SaveOptionEnum): void;
    LoadFromFile(fileName: string): void;
    Charset: string;
    Cancel(): void;
    Size: number;
    Position: number;
    Type: StreamTypeEnum;
    State: ObjectStateEnum;
    Mode: ConnectModeEnum;
}

/**
 * @return adodb.stream
 */
export function CreateStream() {
  return <Adodb.Stream>new ActiveXObject("ADODB.Stream");
}

} // Adodb
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1