本ページには広告が含まれています。
目次
テキストファイルの書き込みを行います。
- 構文
- void = FPUT( ファイルID, 書込み値, 行, 列 )
- 引数
- 戻り値
- 注:実際にファイルが更新されるのはFCLOSEが呼ばれた時です
使い方
以下のテキストファイルに操作を加えます。ファイル名を「sample.txt」としておきます。
1
2
3
4
5
6
7
8
9
10
全文書き換え
DIM FID = FOPEN("sample.txt", F_READ OR F_WRITE)
FPUT(FID, 123, F_ALLTEXT)
PRINT FGET(FID, F_LINECOUNT)
// FCLOSE(FID)
FPUTで書き込みを行ったあと行数を取得したら「1」とはなるが、FCLOSEで保存はしていないので内容は変更されません。FCLOSEを実行しない=メモ帳で編集はしたが保存せずに終了したような状態。
- 結果
1
1
2
3
4
5
6
7
8
9
10
全文書き換え、複数行挿入
TEXTBLOCKを使うことで複数行をまとめて挿入できます。
TEXTBLOCK str
あいうえお
かきくけこ
さしすせそ
ENDTEXTBLOCK
DIM FID = FOPEN("sample.txt", F_READ OR F_WRITE)
FPUT(FID, str, F_ALLTEXT)
FCLOSE(FID)
あいうえお
かきくけこ
さしすせそ
指定行に1行挿入
DIM FID = FOPEN("sample.txt", F_READ OR F_WRITE)
FPUT(FID, 15, 3, F_INSERT)
FCLOSE(FID)
1
2
15
3
4
5
6
7
8
9
10
指定行に複数行挿入
TEXTBLOCK str
15
16
ENDTEXTBLOCK
DIM FID = FOPEN("sample.txt", F_READ OR F_WRITE)
FPUT(FID, str, 3, F_INSERT)
FCLOSE(FID)
1
2
15
16
3
4
5
6
7
8
9
10
ファイル内の改行をすべて削除
ファイル内の改行をすべて削除し1行の文字列にします。
DIM FID = FOPEN("sample.txt", F_READ OR F_WRITE)
FPUT(FID, REPLACE(FGET(FID, F_ALLTEXT), "<#CR>", ""), F_ALLTEXT)
FCLOSE(FID)
12345678910
プログラム実行例
システム起動時間を取得
システムの起動時間をyyyy/mm/dd, hh:nn:ssの形式で取得します。
HASHTBL INFO
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM filename = uniqueFilename(FSO.BuildPath(GET_CUR_DIR, "SYSTEMINFO.csv"))
FID = FOPEN(filename, F_READ OR F_WRITE)
FPUT(FID, DOSCMD("systeminfo /FO CSV"))
FCLOSE(FID)
FID = FOPEN(filename, F_READ OR F_WRITE)
FOR col = 0 TO 33
INFO[FGET(FID, 1, col)] = FGET(FID, 2, col)
NEXT
FCLOSE(FID)
FSO.DeleteFile(filename)
PRINT INFO["システム起動時間"]
結果
2019/12/21, 15:53:56
使用関数
解説
Windowsの稼働時間を取得
Windowsシステムの起動時間から稼働時間を求めます。
結果はd:hh:nn:ssの形式で出力されます。
HASHTBL INFO
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM filename = uniqueFilename(FSO.BuildPath(GET_CUR_DIR, "SYSTEMINFO.csv"))
DIM FID = FOPEN(filename, F_READ OR F_WRITE)
FPUT(FID, DOSCMD("systeminfo /FO CSV"))
FCLOSE(FID)
FID = FOPEN(filename, F_READ OR F_WRITE)
DIM col = 1
WHILE FGET(FID, 1, col) <> ""
INFO[FGET(FID, 1, col)] = FGET(FID, 2, col)
col = col + 1
WEND
FCLOSE(FID)
FSO.DeleteFile(filename)
DIM startupTime = INFO["システム起動時間"]
DIM date1 = dateValue(startupTime) + timeValue(startupTime)
DIM date2 = uwscToSerial(GETTIME())
PRINT INT(date2 - date1) + ":" + text(date2 - date1, "hh:mm:ss")
結果
0:08:16:46
使用関数
解説
テキストファイルの内容を行毎にソートして書き換える
DIM FID = FOPEN("D:\Documents\sample.txt", F_READ OR F_WRITE)
DIM array[-1]
FOR i = 1 TO FGET(FID, F_LINECOUNT)
arrayPush(array, FGET(FiD, i))
NEXT
QSORT(array, QSRT_A)
FPUT(FID, "", F_ALLTEXT)
FOR i = 0 TO UBound(array)
FPUT(FID, array[i], i + 1)
NEXT
FCLOSE(FID)
使用関数
csvファイルをHTMLのテーブルデータにする(csvToHTML)
CSVのデータをHTML(テーブル)に変換します。
クリップボードにcsvファイルのパスをコピーして実行します。
CONST TemporaryFolder = 2
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM Folder = FSO.GetSpecialFolder(TemporaryFolder)
DIM folderspec = Folder.Path
DIM name = FSO.GetTempName
DIM TempPath = FSO.BuildPath(folderspec, name)
DIM path = GETSTR(0)
DIM FID = FOPEN(path, F_READ)
DIM FID2 = FOPEN(TempPath, F_READ OR F_WRITE)
FPUT(FID2, "<table>", F_ALLTEXT)
FOR row = 1 TO FGET(FID, F_LINECOUNT)
DIM col = 1
FPUT(FID2, "<#TAB><tr>", 0)
WHILE FGET(FID, row, col) <> ""
FPUT(FID2, "<#TAB><#TAB><td>" + (FGET(FID, row, col)) + "</td>", 0)
col = col + 1
WEND
FPUT(FID2, "<#TAB></tr>", 0)
NEXT
FPUT(FID2,"</table>", 0)
FCLOSE(FID)
FCLOSE(FID2)
FID = FOPEN(TempPath, F_READ)
SENDSTR(0, FGET(FID, F_ALLTEXT))
PRINT FGET(FID, F_ALLTEXT)
FCLOSE(FID)
使用関数
解説
歌ネットから歌詞を取得してテキストファイルに保存
CONST ssfDesktop = 0
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("https://www.uta-net.com/song/280568/")
BusyWait(IE)
DIM element, elements, name, lyrics
element = IE.document.getElementById("view_kashi")
elements = element.getElementsByClassName("title")
name = TRIM(elements.Item(0).innerText)
element = IE.document.getElementById("kashi_area")
lyrics = element.innerText
IE.Quit
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)
DIM path = Folder.Self.Path
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
path = uniqueFilename(FSO.BuildPath(path, name + ".txt"))
DIM FID = FOPEN(path, F_READ OR F_WRITE)
FPUT(FID, lyrics)
FCLOSE(FID)
使用関数
一時ファイル
DIM FID = FOPEN("", F_READ OR F_WRITE)
FPUT(FID, data, F_ALLTEXT)
FOR r = 1 TO FGET(FID, F_LINECOUNT)
FOR c = 1 TO 4
PRINT FGET(FID, r, c)
NEXT
NEXT
FCLOSE(FID)
TEXTBLOCK data
12, 22, 45, 61
42, 53, 45, 98
ENDTEXTBLOCK
使用関数
関連記事
- FCLOSE関数 (スクリプト関数)
- テキストファイルを閉じます。
- FDELLINE関数 (スクリプト関数)
- テキストファイルの指定行を削除します。
- FGET関数 (スクリプト関数)
- テキストファイルの読み込みを行います。
- FOPEN関数 (スクリプト関数)
- テキストファイルを開き、ファイルIDを取得します。
- DELETEFILE関数 (スクリプト関数)
- テキストファイルを削除します。
- GETDIR関数 (スクリプト関数)
- Folder.CopyHere メソッド (Shell)
- 1つまたは複数のアイテムをフォルダにコピーします。
- Folder.MoveHere メソッド (Shell)
- 1つまたは複数のアイテムをこのフォルダに移動します。
- FileSystemObject オブジェクト
- FSO.DeleteFile メソッド
- 指定したファイルを削除します。