Excel Vba TXT file módosítása

Excel Vba TXT file módosítása
2020-03-28T18:53:33+01:00
2020-03-30T12:03:34+02:00
2022-10-15T21:16:08+02:00
HGabor34
Sziasztok!

 Excel VBA-ból tudok .txt kiterjesztésű, pár soros szövegfilet létrehozni, majd azt később megnyitni és kiolvasni a tartalmát.
 A kérdésem a következő lenne:
- Hogyan tudom törölni a txt file tartalmát a file törlése nélkül ?
- Hogyan tudok csak bizonyos sorokat törölni a txt fileból ?

Válaszotokat előre is köszönöm.
Mutasd a teljes hozzászólást!
Szia!

A közvetlen fájleléréshez vannak utasítások. 
Itt megtalálhatod a hozzá tartozó helpet.
Ezeket használhatod.

Üdv.
Mutasd a teljes hozzászólást!

  • Szia!
    Jó lenne látni a kódodat, amivel létrehozod és kiolvasod a txt fájlt.
    Teljes törlés: visszaírsz a megnyitott fájlba egy 0 hosszúságú szöveget.
    Sorok törlése: beolvasod a fájl tartalmát változóba. Törlöd a nem szükséges sorokat. Ezután visszaírod a maradékot a fájlba.
    A beolvasás és visszaírás módja függ attól, hogyan hoztad létre a fájlt. Legegyszerűbb, ha az új szöveggel (akár 0 bájt, akár módosított szöveg) felülírod az eredeti fájlodat.

    Üdv.
    Mutasd a teljes hozzászólást!
  • Valahogy így létrejön a txt file, pár cellából adatokkal, sortörésekkel.
    Dim strFile_Path As String
     fs.createtextfile("C:\temp\Proba.txt").writeline (Cells(i, 2) & Chr$(13) + Chr$(10) & Cells(i, 4) & Chr$(13) + Chr$(10) & Cells(i, 5) & Chr$(13) + Chr$(10) & Cells(i, 25) & Chr$(13) + Chr$(10) & Cells(i, 26))

    Aztán így kiolvasom, és cellákba írom:

    Dim sText As String
    Dim nFilenum
    Dim SnextLine
    sText = ""
    F = Cells(8, 1)
    OSZ = 1
    nFilenum = FreeFile
    Open "C:\temp\Proba.txt" For Input As nFilenum
         Do While Not EOF(nFilenum)
         Line Input #nFilenum, SnextLine
         Cells(2, OSZ) = SnextLine: OSZ = OSZ + 1
     Loop
    Close nFilenum

    A létrejött txt filet csatolom. Ehhez szeretnék hozzáírni (az megy), esetleg sort törölni, vagy az egészet. Arra gonfoltam, hogy törlöm KILL -el az egész filet, és létrehozok egy újat. De szebb lenne, ha tudnám módosítani.
    Nem vagyok egy nagy VBA guru, csak munkahelyemen tanulgatom.
    Köszi!
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Szia!

    A közvetlen fájleléréshez vannak utasítások. 
    Itt megtalálhatod a hozzá tartozó helpet.
    Ezeket használhatod.

    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia!

    Köszönöm hogy válaszoltál, elfogadom megoldásként.

    Végülis úgy sikerült törölnöm a tartalmát, hogy fs.createtextfile -al ugyanazt a filet létrehozva egy üres txt file keletkezik.

    Dim fs, d, s
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set d = fs.GetDrive(fs.GetDriveName("P:"))
    Dim nFilenum
    Dim SnextLine
      fs.createtextfile("p:\PRODUCT\ASSY-HIBAKEZELÉS\FINAL\LOG" & Cells(Cells(1, 9), 2)). _
    Writeline (Cells(2, 1)) & Chr$(13) + Chr$(10) & (Cells(2, 2)) & Chr$(13) + Chr$(10) & (Cells(2, 3))
    Close nFilenum

    Köszi!
    Gábor
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd