Tekst inverteren

Pagina: 1
Acties:
  • 156 views sinds 30-01-2008
  • Reageer

  • Graham
  • Registratie: Maart 2001
  • Laatst online: 14-09 10:45
Ik zoek een programma wat lekker simpel is en dat tekst kan inverteren.

vb.
-------------------------
Hallo mensen

wordt...

nesnem ollaH
------------------------

Als het kan mag het ook met word maar het liefst wil ik dan wel dat ie complete teksten omdraait. Heb gezocht in de FAQ, met de Search, google en google discussiegroepen ;)

Kan ook wel een programma schrijven maar ik zoek het eigenlijk nu en anders moet ik het nog maken.... }:O

[ Voor 14% gewijzigd door Graham op 03-04-2003 12:18 ]


  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 18-09 18:20
Even snel een Word-macro gebakken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub Invert_text()
'
' Invert_text Macro
' Gemaakt op 03-04-03 door Coffeemonster
'
    ActiveDocument.Content.Select
    Oud = Selection.Text
    Nieuw = Space(Len(Oud))
    For n = 1 To Len(Oud)
        Mid$(Nieuw, (Len(Oud) - n + 1), 1) = Mid$(Oud, n, 1)
    Next n
    Selection.Delete
    Selection.InsertAfter (Nieuw)
    ActiveDocument.GoTo what:=wdGoToPage, which:=wdGoToFirst
    ActiveDocument.Characters.First.Delete
End Sub

Hiermee wordt alle tekst in een Word-document geïnverteerd.

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange


  • Graham
  • Registratie: Maart 2001
  • Laatst online: 14-09 10:45
Hey beter :D

Als iemand nog een programma weet post het maar....

Dit werkt ook primas.... :9~


edit:

Hij werkt niet helemaal perfect...

Namelijk als je de volgende tekst hebt:

Hallo,

Welkom op tweakers.

Veel plezier.

Graham


Dan krijg je dus dit...

maharG

.reizelp leeV

.srekaewt po mokleW

,ollaH


Hij invert de tekst niet alleen maar hij draait de volgorde ook om ;) wat dus niet de bedoeling is :)

[ Voor 119% gewijzigd door Graham op 03-04-2003 14:42 . Reden: see edit ]


  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 23:04
wou je voorbereid zijn voor de 1 april grap van volgend jaar?
Alle posts omgekeerd schrijven, zodat je alles weer goed ziet? :+

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


  • Graham
  • Registratie: Maart 2001
  • Laatst online: 14-09 10:45
OnTracK schreef op 03 april 2003 @ 14:08:
wou je voorbereid zijn voor de 1 april grap van volgend jaar?
Alle posts omgekeerd schrijven, zodat je alles weer goed ziet? :+
LOL, nee is voor een andere forum.

Daar hebben ze het zogenaamde Mirror Thread waar alles dus omgedraait staat en dus is dit wel een handig tooltje met lezen en posten :D

  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 18-09 18:20
Als je per zin de boel wilt omdraaien, zal je met paragraphs moeten werken. Weer een macrootje maar:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub Invert_text_v2()
'
' Invert_text Macro
' Gemaakt op 03-04-03 door Coffeemonster
'
    AantalZinnen = ActiveDocument.Paragraphs.Count
    For s = 1 To AantalZinnen
        LegeZin = 0
        If ActiveDocument.Paragraphs(s).Range.Text = "" Then
            LegeZin = 1
            GoTo Volgende
        End If
        ActiveDocument.Paragraphs(s).Range.Select
        oud = Selection.Text
        Nieuw = Space(Len(oud))
        For n = 1 To (Len(oud) - 1)
            Mid$(Nieuw, (Len(oud) - n), 1) = Mid$(oud, n, 1)
        Next n
        Mid$(Nieuw, Len(oud), 1) = Mid$(oud, Len(oud), 1)
        Selection.Delete
        Selection.InsertAfter (Nieuw)
        If s = AantalZinnen Then
            Selection.InsertParagraphBefore
            Selection.Characters.Last.Delete
        End If
Volgende:
    Next s
    Selection.GoTo what:=wdGoToLine, which:=wdGoToFirst
End Sub

Misschien niet de meest efficiënte, maar hij moet wel werken.

offtopic:
Hmmm, ik moet eens een Word-macrotoolbox maken

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange


  • Graham
  • Registratie: Maart 2001
  • Laatst online: 14-09 10:45
Heeft nog steeds hetzelfde effect op meerdere regels jammer genoeg... maar dan maar regel voor regel ;)
edit:
Mmm, komt misschien door het c/p'en



Is er geen proggie voor dit soort onzin?

[ Voor 16% gewijzigd door Graham op 03-04-2003 15:45 ]


  • jvhaarst
  • Registratie: Maart 2000
  • Laatst online: 30-08 13:17

jvhaarst

Eendracht maakt macht

Ja, dat heet Perl.

If you don’t have enough time, stop watching TV.


  • Graham
  • Registratie: Maart 2001
  • Laatst online: 14-09 10:45
Leuk dat je het post ;) maar bedoel je gewoon het programmeren in Perl?

of echt een programma dat zo heet? (post effe een link dan ;))

  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 18-09 18:20
Graham schreef op 03 April 2003 @ 15:43:
Heeft nog steeds hetzelfde effect op meerdere regels jammer genoeg... maar dan maar regel voor regel ;)
edit:
Mmm, komt misschien door het c/p'en



Is er geen proggie voor dit soort onzin?
Ik snap niet precies wat je bedoelt. Bedoel je dat je per regel de zin moet worden omgedraaid in plaats van per zin? Je zit dan sowieso met het probleem dat de regellengte niet overal hetzelfde hoeft te zijn. Een oplossing is dan in Word na elke regel een enter te geven, omdat de tweede macro per alinea checkt.

Of zie ik het verkeerd?

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange


  • Graham
  • Registratie: Maart 2001
  • Laatst online: 14-09 10:45
Idd, hij moet regel voor regel doen. Zo zal hij nooit de regels zelf ook om ruilen/switchen en behou je de opbouw... (met andere worden hij invert alleen de regel niet de zin, of per regel)

vb.
test 1
test 2

na inverteren moet het dus dit worden:

1 tset
2 tset

En niet....

2 tset
1 tset


Misschien dat je nog een ander voorbeeld wil met een langere zin of zo maar dat roep je maar...

  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 18-09 18:20
Nieuwe macro dan maar:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub Invert_text_v3()
'
' Invert_text_v3 Macro
' Gemaakt op 03-04-03 door Coffeemonster
'
    Selection.HomeKey Unit:=wdStory
    IsEinde = 0
    Do
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        If ((Selection.Range.End + 1) = ActiveDocument.Content.End) Then
            IsEinde = 1
        ElseIf ((Selection.Range.End) = ActiveDocument.Content.End) Then
            IsEinde = 2
        End If
        oud = Selection.Text
        Nieuw = Space(Len(oud))
        For n = 1 To (Len(oud) - 1)
            Mid$(Nieuw, (Len(oud) - n), 1) = Mid$(oud, n, 1)
        Next n
        Mid$(Nieuw, Len(oud), 1) = Mid$(oud, Len(oud), 1)
        Selection.Delete
        If IsEinde = 1 Then
        '    Selection.InsertAfter (Chr(13))
            Selection.MoveRight Unit:=wdCharacter, Count:=1
        ElseIf IsEinde = 2 Then
            Selection.InsertAfter (Chr(13))
            Selection.MoveRight Unit:=wdCharacter, Count:=1
        End If
        Selection.InsertAfter (Nieuw)
        Selection.MoveDown Unit:=wdLine, Count:=1
        Selection.HomeKey Unit:=wdLine
        If IsEinde = 2 Then
            Selection.Characters(1).Delete
        End If
    Loop Until IsEinde
End Sub

Deze wisselt per regel om. Ik moest er wel een paar checks inbouwen om te zien of aan het eind een lege regel staat, vandaar dat 'ie wat langer is. :)

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange


  • Graham
  • Registratie: Maart 2001
  • Laatst online: 14-09 10:45
Hey Coffeemonster hij werkt prima maakt niet uit dat ie langer is en nog _/-\o_ :Y)

Verwijderd

[rev] }>

Jammergenoeg werkt dat niet meer. Vroeger zat die als geheime tag in Topix.

  • blackd
  • Registratie: Februari 2001
  • Niet online
Voor een enkele zin:
Haskell:
1
2
draaiTextOm :: String -> String
draaiTextOm = reverse

Voor een text als lijst (dus voor elke regel een array waarde):
Haskell:
1
2
draaiTextOm :: [String] -> [String]
draaiTextOm = unlines(map reverse)

alleen nog geen idee hoe je een textfile inleest, dat moet ik nog leren :P

simpel :Y)

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 17-09 02:00
Ik zie wel allemaal mensen met perl,
voor als je het webbased wil doen met php, is er de functie strrev

[ Voor 55% gewijzigd door Bender op 03-04-2003 22:00 ]


  • blackd
  • Registratie: Februari 2001
  • Niet online
tuurlijk, voor elke regel strrev gebruiken

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • jvhaarst
  • Registratie: Maart 2000
  • Laatst online: 30-08 13:17

jvhaarst

Eendracht maakt macht

Graham schreef op 03 April 2003 @ 15:59:
[...]
Leuk dat je het post ;) maar bedoel je gewoon het programmeren in Perl?
Ik was in een beetje een zeikerige bui, sorry 8)
Ik heb net wel gezocht naar een text editor die ooit heb gezein, maar die kan ik niet meer vinden.

Daar kon je allemaal dit soort geintjes mee uithalen, en ook tekst in een bepaald formaat zetten. Een bol, piramide, dat soort dingen.

Iemand enig idee waar ik het over heb ?

If you don’t have enough time, stop watching TV.


  • nrg
  • Registratie: April 2001
  • Laatst online: 21:51

nrg

blackd schreef op 03 April 2003 @ 21:37:
Haskell:
1
2
draaiTextOm :: String -> String
draaiTextOm = reverse
Sorry dat het off-topic is, maar wtf is haskell :?

[ Voor 40% gewijzigd door nrg op 03-04-2003 22:05 ]


  • smallboy
  • Registratie: September 2000
  • Laatst online: 19-09 19:49

smallboy

N/A

http://www.haskell.org/

Een of andere programmeertaal, dit vond ik met googelen.

  • TD-er
  • Registratie: Januari 2000
  • Laatst online: 28-08 16:22
Haskell is een zgn. functionele programmeertaal.
Ik heb het gehad met het van Functioneel programmeren.
D'r zijn best wel complexe programma's mogelijk in Haskel.

Voor het laten zien, hoe reverse werkt, zou ik het meer zo opschrijven:
code:
1
2
draaiom [] = []
draaiom (z:zs) = draaiom zs ++ [z]

Maar reverse is inderdaad een bestaand commando in Haskel (net ff opgezocht)

Een goedkope voeding is als een lot in de loterij, je maakt kans op een paar tientjes korting, maar meestal betaal je de hoofdprijs. mijn posts (nodig wegens nieuwe layout)


  • blackd
  • Registratie: Februari 2001
  • Niet online
TD-er schreef op 04 April 2003 @ 18:43:
Haskell is een zgn. functionele programmeertaal.
Klopt, ik leer Haskell nu met Helium, een aangepaste versie van Haskell, om het makkelijker te leren. Ook aan de UU gezeten?
Voor het laten zien, hoe reverse werkt, zou ik het meer zo opschrijven:
code:
1
2
draaiom [] = []
draaiom (z:zs) = draaiom zs ++ [z]

Maar reverse is inderdaad een bestaand commando in Haskel (net ff opgezocht)
Patroonherkenning lijkt me enigszins overbodig in deze functie, juist omdat je reverse al hebt :)

Ik heb vandaag trouwens geleerd hoe I/O kan. In Helium kan ReadFile niet, maar in Haskell kan dat wel. Dus daarmee is een dergelijk programma zo gemaakt (al weet ik niet hoe Haskell omgaat met de file, hoe hij hem inleest e.d.).

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • smallboy
  • Registratie: September 2000
  • Laatst online: 19-09 19:49

smallboy

N/A

Hmmz ik heb een progje gemaakt in VB.NET. Draait de text om, maar behoudt de regels (dus eerste regel blijft bovenaan enz.).

Alleen is het wat groot geworden setup file is 1 mb (en als je niet xp draait en je windows installer is verouderd dan nog ns een paar mb erbij).

Ook moet dotnetfx.exe ergens downloaden (tenzij je al de dotnet framework sdk of visual studio .net hebt geinstalleerd). Ook weer iets van 20 mb.
(Als dit allemaal erg vaag klinkt: kan wel kloppen, ik ben pas net bezig met VB.NET, pas een boek gekocht).

Nouwja als iemand nog interesse heeft roept ie maar (kan evt. ook gewoon de files sturen voor VB). Bovenstaande word oplossing is een stuk makkelijker :)

Verwijderd

TD-er schreef op 04 April 2003 @ 18:43:
Voor het laten zien, hoe reverse werkt, zou ik het meer zo opschrijven:
code:
1
2
draaiom [] = []
draaiom (z:zs) = draaiom zs ++ [z]

Maar reverse is inderdaad een bestaand commando in Haskel (net ff opgezocht)
De standaard reverse is wel iets anders gedefinieerd (stuk efficienter) maar is voor mensen die haskell niet kennen iets lastiger te begrijpen:

code:
1
2
reverse   :: [a] -> [a]
reverse    = foldl (flip (:)) []

om een bestand in te lezen met de Haskell IO en vervolgens te schrijven kan je de volgende code gebruiken:
code:
1
draaiomBestand inf outf = (readFile inf) >>= \tekst -> writeFile outf (reverse tekst)

of netter (met een commandline UI :) )
code:
1
2
3
4
5
6
7
main = do {  putStr("type de naam van het originele bestand\n")
           ; inf <- getLine
           ; tekst <- readFile inf
           ; putStr ("type de naam van het bestand waarin "++inf++" omgekeerd moet worden geschreven\n")
           ; outf <- getLine
           ; writeFile outf (reverse tekst)
          }

Als je dit programma vervolgens compileert met de GHC-compiler kan je het simpel executen om de inhoud van een bestand om te keren :Y)

  • Johnny
  • Registratie: December 2001
  • Laatst online: 19-09 17:56

Johnny

ondergewaardeerde internetguru

Abiword (opensource tekstverwerker) heeft deze functie standaard ingebouwd.

http://www.abisource.com

[ Voor 16% gewijzigd door Johnny op 12-04-2003 21:55 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Verwijderd

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function Draaiom(StrText As String)


    Dim StrRows() As String
    Dim StrWords() As String
    
    Dim r As Long
    Dim w As Long
    
    
    StrRows() = Split(StrText, vbNewLine)
    
    For r = LBound(StrRows) To UBound(StrRows)
      StrWords() = Split(StrRows(r), " ")
      For w = LBound(StrWords) To UBound(StrWords)
        StrWords(w) = StrReverse(StrWords(w))
      Next w
      StrRows(r) = Join(StrWords, " ")
    Next r
    
    
    Draaiom = Join(StrRows, vbNewLine)
    
End Function

[ Voor 5% gewijzigd door Verwijderd op 13-04-2003 00:34 ]


  • Frash
  • Registratie: Mei 2002
  • Laatst online: 15:21
Toevallig van Google geplukt,
voor zinnetjes:
>> http://webxtractions.com/misc/reversetxt.php
Pagina: 1