Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Wyszukiwarka I Edytor Pliku TXt


Rekomendowane odpowiedzi

Opublikowano

Witajcie Potrzebuje Pomocy chciał bym Stworzyć program do edycji pliku .txt

Ogólnie mam Małe pojecie o Programie Ale Nie mogę sobie poradzić nawet z wujkiem google zęby to stworzy

Chodzi O To Aby Program Wynajdywań Cztery Rodzaje Ciągów Liczb i Przed Czwartym Ciągiem Dodał Jeden tak Jak Na zdj

Bez tytułu.jpg

Kocham mpcforum.pl!!!

18706.png

Opublikowano
Dim $sFileSource = "test.txt"     ;nazwa pliku źródłowego
Dim $sFileResult = "result.txt"   ;nazwa pliku wynikowego
Dim $sInsert = "Z14.000 "         ;dopisywany człon
Dim $sWR = "(Z24\.000.*\R.*Z21\.000.*\R.*Z19\.000.*\R.*)(F10000\.0)" ;wyrażenie regularne opisujący poszukiwany fragment tekstu

$sTxt = FileRead($sFileSource)  ;wczytanie pliku źródłowego

$sTxtRes = StringRegExpReplace($sTxt, $sWR, "$1" & $sInsert & "$2") ;dopisanie dodatkowego członu, z użyciem wyrażeń regularnych

FileOpen($sFileResult, 2)          ;tworzenie pliku wynikowego
FileWrite($sFileResult, $sTxtRes)  ;zapis pliku wynikowego

Sprawdź, czy dokładnie o to ci chodziło?

Na tym fragmencie co zamieściłeś, to działa bez problemu.

Opublikowano

jak na tym etapie działa bez  problemu dzięki wielki za pomoc jutro sprawdzę na maszynie

 

#include <GUIConstantsEx.au3>
#include <AVIConstants.au3>
#include <TreeViewConstants.au3>
#include <Array.au3>
#include <Clipboard.au3>

GUICreate("Fronty V", 250, 150)
GUISetState()
$Wczytaj=GUICtrlCreateButton("Wczytaj Plik", 10, 10, 230, 30)
$Konwertuj=GUICtrlCreateButton("Konwertuj", 10, 40, 230, 30)
$Zapis=GUICtrlCreateButton("Zapisz", 10, 100, 230, 30)

 

 

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Wczytaj
            $sFtxt= FileOpenDialog("Wybierz plik ","","(*.NC)")
             $sTxt = FileRead($sFtxt);wczytanie pliku tekstowego do zmiennej
        Case $Konwertuj
                        $sInsert = "Z14.000 "
                        $sWR = "(Z24\.000.*\R.*Z21\.500.*\R.*Z19\.000.*\R.*)(F10000\.0)"
                        $re=StringRegExpReplace($sTxt, $sWR, "$1" & $sInsert & "$2")
        Case $Zapis
                FileDelete ($sFtxt )
                FileWrite ( $sFtxt, $re )

    EndSwitch
WEnd


While GuiGetMsg() <> $GUI_EVENT_CLOSE
WEnd

Kocham mpcforum.pl!!!

18706.png

Opublikowano
#include <GUIConstantsEx.au3>

Dim $sTxtSource, $sTxtRes
Dim $sInsert = "Z14.000 "         ;dopisywany człon
Dim $sWR = "(Z24\.000.*\R.*Z21\.000.*\R.*Z19\.000.*\R.*)(F10000\.0)" ;wyrażenie regularne opisujący poszukiwany fragment tekstu

;tworzenie GUI
GUICreate("Fronty V", 250, 150)
$hWczytaj = GUICtrlCreateButton("Wczytaj Plik", 10, 10, 230, 30)
$hKonwertuj = GUICtrlCreateButton("Konwertuj", 10, 40, 230, 30)
$hZapis = GUICtrlCreateButton("Zapisz", 10, 70, 230, 30)
$hKoniec = GUICtrlCreateButton("Koniec", 10, 110, 230, 30)
GUISetState()

;pętla główna programu
While 1
    $iMsg = GUIGetMsg()
    Switch $iMsg
        Case $GUI_EVENT_CLOSE, $hKoniec
            Exit
        Case $hWczytaj
            $sFileSource = FileOpenDialog("Wybierz plik do źródłowy","","(*.NC;*.TXT)")
            $sTxtSource = FileRead($sFileSource)      ;wczytanie pliku źródłowego do zmiennej
        Case $hKonwertuj
			If $sTxtSource Then
				$sTxtRes = StringRegExpReplace($sTxtSource, $sWR, "$1" & $sInsert & "$2")
				MsgBox(64, "Test",$sTxtRes)
			Else
				MsgBox(16, "UWAGA!", "Nie wybrano pliku źródłowego!")
			EndIf
        Case $hZapis
			$sFileResult = FileSaveDialog("Wybierz lub wpisz nazwę pliku do zapisu","","(*.NC;*.TXT)")
			If $sFileResult<>"" And $sTxtRes<>"" Then
				FileOpen($sFileResult, 2)          ;tworzenie pliku wynikowego
				FileWrite($sFileResult, $sTxtRes)  ;zapis pliku wynikowego
			Else
				MsgBox(16, "UWAGA!", "Nie można zapisać pliku docelowego!")
			EndIf
    EndSwitch
WEnd

Proponuję takie coś. Dodałem kontrolę poprawności z komunikatami.

Nie wiem do czego była większość includów, więc usunąłem. Pominąłem też drugą pętlę While, bo do niczego nie służyła. Dodałem też przycisk "Koniec".

Aby nadpisywać plik, trzeba go otworzyć z parametrem 2. Wtedy plik jak nie istnieje, to jest tworzony, a jak istnieje, to jest wyczyszczony z zawartości.

https://pl.wikibooks.org/wiki/AutoIt/Operacje_na_plikach

Jak jeszcze coś masz niejasnego, to śmiało pisz.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...