Verktyg för att visualisera ändringar inom ett textdokument.

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
H.O
Inlägg: 5964
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av H.O »

Nej, inget diff-verktyg som jämför två filer, utan något som på radbasis kan visa vad (om något) som ändrats från föregående rad.
Jag har textfiler med tusentals rader "binärdata", så här t.ex:

Kod: Markera allt

000010100010100000001100001000011010010010110011110101100111111111001100010110001100011
000010100010100000001100001000011010010010110111110101100111111111001100010110101100011
000010100010100000001100001000011010010010110000001101100111111111001100010110010011011
000010100010100000001100001000011010010010110100001101100111111111001100010110110011011
000010100010100000001100001000011010010010110000001101100111111111001100010110010011011
En del data SER UT att vara statisk medan annan TYDLIGT ändrar sig. Men så finns det de där små grejjerna som är lätta att missa.

Är det någon som känner till ett gratisverktyg som på ett enkelt sätt kan visa mig vilka teckenpositioner som ändrats från en rad till en annan, typ röd "överstrykning" eller nått.
ie
EF Sponsor
Inlägg: 1422
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av ie »

Jag skulle lägga in raderna i Excel och sen skriva ett makro som jämför varje textposition med raden ovanför och om det skiljer så rödmarkera tecknet.
ie
EF Sponsor
Inlägg: 1422
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av ie »

Kopiera in ditt data i cell A1 och neråt. Använd Kopiera som text om datat börjar med en siffra.

Kör sedan nedanstående kod

Kod: Markera allt

Sub look_for_changes()
    Row = 2
    Do
        If Cells(Row, 1) = "" Then Exit Do
        pos = 1
        Do
            If Mid(Cells(Row, 1), pos, 1) = "" Then Exit Do
            If Mid(Cells(Row, 1), pos, 1) <> Mid(Cells(Row - 1, 1), pos, 1) Then
                Cells(Row, 1).Characters(pos, 1).Font.Color = vbRed
            End If
            pos = pos + 1
        Loop
        Row = Row + 1
    Loop
End Sub
Då rödmarkeras ändringarna.
Skärmbild 2025-10-16 185702.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
H.O
Inlägg: 5964
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av H.O »

Snyggt, tack och bock ie!!

Fortfarande öppen för förslag ifall det finns andra verktyg för ändamålet.

EDIT: Aargh, har bara LibreOffice Calc och den är inte 100% kompatibel med VBA, Cells() saknas t.ex så jag får läsa på och modda - eller leta upp en maskin med Excel på :-)
guckrum
Inlägg: 1963
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av guckrum »

Om inte radernas ordning spelar roll kan du börja med att sortera dem.
Användarvisningsbild
rvl
Inlägg: 7056
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av rvl »

Som jag förstod så ÄR ordningen viktig, så man ser var ändringarna sker.

Att skriva ett eget program i valfritt språk är en möjlighet, men kanske inte riktigt går i en handvändning. Chat GPT kanske kan var hjälpsam med det?
guckrum
Inlägg: 1963
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av guckrum »

Lite awk gör nog susen här:

Kod: Markera allt

cat data | awk 'BEGIN{prev = $0}{
    for(char=1; char<=length($0); char++)
        printf (substr($0, char, 1) == substr(prev, char, 1))? substr($0, char, 1) : "\x1b[1m" substr($0, char, 1) "\x1b[0m"
        print ""
    prev = $0
}'
De kryptiska "0x1b[1m" osv kommer att boldmarkera de ändrade tecknen.
Du kan ersätta med tex "0x1b[31m" om du vill ha dem röda. Eller kombinera...
2025-10-16T18_45_50.png
edit: med figur
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
H.O
Inlägg: 5964
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av H.O »

Ja, ordningen är av betydelse. Jag hade nog fixat att göra nått i Python och printa till terminal med formaterings-strängar (likt guckrums awk-exempel) men jag vill ju kunna scrolla runt, editera filen, lägga till kommentarer (eller i alla fall SPARA) filen formaterad så den kan editeras i annat program och plötsligt har man lagt 14 dar på det istället... :-)

awk hade jag aldrig hört talas om och det verkar vara *nix specifikt, jag kör Windows, vilket jag borde skrivit i första inlägget.

Excel (om jag inte får till det i Opencalc) leder :-)
guckrum
Inlägg: 1963
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av guckrum »

Spara gör du genom att lägga till ett "> filnamn" på slutet. Därefter har du en fil som du kan editera, scrolla runt i eller vad du nu vill göra.
blausippan
Inlägg: 14
Blev medlem: 17 augusti 2016, 11:28:14
Ort: Göinge

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av blausippan »

Kan bara instämma i att awk är ett utmärkt verktyg för uppgifter som tex TS exempel. Jag använde det mycket på 90-talet just för analys av digitalsimuleringar, tillsammans med sed och grep. Användes nog inte så mycket idag men gnu-versionen gawk finns för Windows.
Användarvisningsbild
farbrorvattenmelon
Inlägg: 291
Blev medlem: 29 januari 2009, 21:38:21

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av farbrorvattenmelon »

https://triq.net/bitbench kanske skulle vara till nytta?
Användarvisningsbild
swesysmgr
Inlägg: 15089
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av swesysmgr »

H.O skrev: 16 oktober 2025, 21:05:24 Ja, ordningen är av betydelse. Jag hade nog fixat att göra nått i Python och printa till terminal med formaterings-strängar (likt guckrums awk-exempel) men jag vill ju kunna scrolla runt, editera filen, lägga till kommentarer (eller i alla fall SPARA) filen formaterad så den kan editeras i annat program och plötsligt har man lagt 14 dar på det istället... :-)

awk hade jag aldrig hört talas om och det verkar vara *nix specifikt, jag kör Windows, vilket jag borde skrivit i första inlägget.

Excel (om jag inte får till det i Opencalc) leder :-)
Det går bra att köra sed och awk i ett Ubuntu terminalfönster i Windows 11, Linux körs i WSL men fungerar smidigt i Windows och du kan dela filer direkt via utforskaren. Inga Windows-versioner av programmen krävs.

Samtidigt är kostnaden för min licens på Office 365 är den årliga it-investering som sparar i särklass mest tid per krona.. .
nifelheim
Den första
Inlägg: 2526
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av nifelheim »

Var ju bara tvungen att testa :)
funkade utmärkt i libreoffice calc så här:

Kod: Markera allt

Sub LookForChanges
    Dim oDoc As Object
    Dim oSheet As Object
    Dim oCell As Object
    Dim oPrevCell As Object
    Dim oCursor As Object
    Dim row As Long
    Dim pos As Long
    Dim currentText As String
    Dim prevText As String

    oDoc = ThisComponent
    oSheet = oDoc.Sheets(0)

    row = 1   ' Radindex i LibreOffice börjar på 0, så detta motsvarar rad 2 i Excel

    Do
        oCell = oSheet.getCellByPosition(0, row)
        If Trim(oCell.String) = "" Then Exit Do

        oPrevCell = oSheet.getCellByPosition(0, row - 1)
        currentText = oCell.String
        prevText = oPrevCell.String

        For pos = 1 To Len(currentText)
            If pos <= Len(prevText) Then
                If Mid(currentText, pos, 1) <> Mid(prevText, pos, 1) Then
                    ' Skapa textcursor och färga ett tecken rött
                    oCursor = oCell.createTextCursor()
                    oCursor.gotoStart(False)
                    oCursor.goRight(pos - 1, False)
                    oCursor.goRight(1, True)
                    oCursor.CharColor = RGB(255, 0, 0)
                End If
            End If
        Next pos

        row = row + 1
    Loop
End Sub

Tror inte det går märkbart fortare om jag skulle betala och köra excel :D
H.O
Inlägg: 5964
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av H.O »

Nice! Har inte haft tid/möjlighet att titta mer på detta ånnu men tusen tack för LibreOffice Calc-versionen!
malman
Inlägg: 729
Blev medlem: 13 februari 2006, 01:17:03
Ort: Arboga

Re: Verktyg för att visualisera ändringar inom ett textdokument.

Inlägg av malman »

Notepad++ med compare plugin brukar jag använda...
Skriv svar