アプリ版:「スタンプのみでお礼する」機能のリリースについて

今は、C直下のABCというフォルダの中の
0000.txt と 1111.txt の2つがあって、
0000.txt の一番上の行を削除して、1111.txt を作成しています。
この1111.txt の一番下の行を削除する追記をどうすればいいのか
わかる方教えてほしいです。
※VBAわからないので、コピペコピペで作成してます。
※わかる方は、そのまま下の文書に追記頂ければ幸いです。

Function callsub()
Call del
End Function
Sub del()

Dim WL As String
Dim x As Long
Dim F As Variant

F = FreeFile
Open "C:\ABCA\0000.txt" For Input As #F
Open "C:\ABC\1111.txt" For Output As #F + 1
For x = 1 To 2
Line Input #F, WL
Next
Do Until EOF(F)
Line Input #F, WL
Print #F + 1, WL
Loop
Close #F
Close #F + 1

End Sub

A 回答 (3件)

先頭2レコードを読み飛ばしているようですが、それで正しいのですよね?


であれば、こんな感じです。

Function callsub()
Call del
End Function
Sub del()

Dim WL As String
Dim x As Long
Dim F As Variant

F = FreeFile
Open "C:\ABCA\0000.txt" For Input As #F
Open "C:\ABC\1111.txt" For Output As #F + 1
For x = 1 To 3
Line Input #F, WL
Next
Do
Print #F + 1, WL
Line Input #F, WL
Loop Until EOF(F)
Close #F
Close #F + 1

End Sub
    • good
    • 1

#1の補足です。


文字コードのことをすっかり忘れていました。現行では、Shift-JISだけのチェックです。
Accessで、Shift-JISだけということもないでしようけれども、ダメだったら、二段目を考えます。
    • good
    • 0

やり方は、いろいあるかとは思いますが、VBAの外部ツールで作ってみました。



Call Line_FE(OldFile, NewFile) 0000.txt , 1111.txt 

Function Line_FE(FileName As String, outFilename As String)
 Dim objFS As Object
 Dim objText As Object
 Dim oExport As Object
 Dim FNo As Integer
 Dim TextLine As String
 Dim i As Long, j As Long
 Dim e_line
 Dim buf, Arbuf
 
 
 Set objFS = CreateObject("Scripting.FileSystemObject")
 Set objText = objFS.OpenTextFile(FileName, 8)
 e_line = objText.Line - 1
 objText.Close
 Set objText = objFS.OpenTextFile(FileName)
 buf = objText.ReadAll
 Arbuf = Split(buf, vbCrLf)
 
' 下準備完了
'---------------
  Set oExport = objFS.CreateTextFile(outFilename, True)
  Arbuf = Split(buf, vbCrLf)
  For j = 1 To UBound(Arbuf) - 1 '最後までいかない
   If j > 1 Then '最初を飛ばし
   oExport.Writeline (Arbuf(j - 1))
   End If
  Next
  oExport.Close
 End Function
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!