Nur zahlen und buchstaben sollen ausgegeben werden

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Nur zahlen und buchstaben sollen ausgegeben werden

Re: Nur zahlen und buchstaben sollen ausgegeben werden

von LeneKai » Mi, 16.04.2014 09:17

Hi ulti

Hier Zwei Basic Funktionen für die Lösung.

Code: Alles auswählen

'Erzeuge Random Nummer (double)
  Function RndRange(lowerbound as double, upperbound as double) as double
    RndRange= lowerbound + Rnd() * (upperBound - lowerbound)
    
  end Function
  
  'Erzeuge Passwort
  function f_create_PW(Passwortlaenge as integer) as string
    dim password as string
    dim npw as integer, i as integer
    
    password = ""
    i=0 
    while i < Passwortlaenge
     npw = int(RndRange(48,122))
     If (npw > 47 and npw < 58) or (npw >64 and npw < 91) or (npw > 96 and npw < 123) then
       password = password & chr(npw)
       i=i+1
     end if  
    wend
    
   f_create_PW = password
end function

Gruß Kai

Re: Nur zahlen und buchstaben sollen ausgegeben werden

von Karolus » Do, 20.03.2014 15:38

Im angehängten Dokument steckt eine Funktion zum einfügen eines Passworts in die aktuell selektierte Zelle

Code: Alles auswählen

import uno
from os import path
from string import ascii_letters, digits
from random import sample


ctx = uno.getComponentContext()
servicemanager = ctx.ServiceManager
createUnoService = servicemanager.createInstance
file_access = createUnoService("com.sun.star.ucb.SimpleFileAccess")
pathsubstution = createUnoService("com.sun.star.util.PathSubstitution")

def install_me(*_):
    """
    Funktion zum kopieren dieses eingebetteten Pythonscripts
    ins den .userconfig_python_pfad"""

    pythonfolder = pathsubstution.substituteVariables('$(user)/Scripts/python/',0)
    filename = path.basename(__file__)
    if not file_access.isFolder( pythonfolder):
        file_access.createFolder(pythonfolder)
    file_access.copy(__file__, path.join( pythonfolder, filename))
    
def password():
    doc = XSCRIPTCONTEXT.getDocument()
    sel = doc.getCurrentSelection()
    sel.String = ''.join(sample(ascii_letters + digits , 4))
 
Eine Funktion zum kopieren in dein Benutzerverzeichniss ist auch mit dabei.
passwort.ods
(12.72 KiB) 102-mal heruntergeladen
Karolus

Re: Nur zahlen und buchstaben sollen ausgegeben werden

von Ulti » Do, 20.03.2014 15:01

hmm, okay ich schau mal ob ich was hinbiegen kann...

Re: Nur zahlen und buchstaben sollen ausgegeben werden

von Karolus » Do, 20.03.2014 14:04

Ulti hat geschrieben:danke, aber für phyton müsse laut Lappi eine JRE installiert werden, und leider wird die Installation jedesmal abgebrochen.
Nein python benötigt keine JRE auch wenn dein Lappi das behauptet.

Re: Nur zahlen und buchstaben sollen ausgegeben werden

von Ulti » Do, 20.03.2014 13:29

danke, aber für phyton müsse laut Lappi eine JRE installiert werden, und leider wird die Installation jedesmal abgebrochen.

Ich hab folgende änderung vorgenommen

aus
npw = 33 + int(rnd()*94)
password = "" & password & chr(npw)

wurde

npw = 3 + int(rnd()*9)
password = "" & password & npw

so werden nur 4 zahlen ausgegeben, ist dann halt wie ein Pine Nummer =)

Re: Nur zahlen und buchstaben sollen ausgegeben werden

von Karolus » Mi, 19.03.2014 09:22

Hallo

Achtung Python:

Code: Alles auswählen

import string
import random
alle = string.ascii_letters + string.digits
password = ''.join(random.sample(alle, 4))
 
Karolus

Nur zahlen und buchstaben sollen ausgegeben werden

von Ulti » Mi, 19.03.2014 08:56

hallo liebes forum,

kann mir jemand sagen wie man dieses Macro so umändert das nur Buchstaben oder Zahlen aufkommen?

Code: Alles auswählen
function f_create_PW
dim password as string
password = ""
dim npw as integer
for i = 0 to 3
npw = 33 + int(rnd()*94)
password = "" & password & chr(npw)
next i
f_create_PW = password
end function



Ich zähl mal auf wie ich es verstehe

dim [erstellt eine Variable (hier password)] as string [als eine Zeichenfolge]
password = "" [der Text(string) ist erstmal leer]
dim [erstellt eine Variable (hier npw)] as integer [als eine Zahl zwischen +-32768]
for i = 0 to 3 [i ist ein zähler es sollen 4 stellen ausgegeben werden]
npw = 33 + int(rnd()*94) [nwp = die zahl 33 + eine zufällige integerzahl * 94]
password = "" & password & chr(npw) [das password ist = der Text und die Variable password und chr(npw), also das ASCII-Zeichen für npw aus dieser Tabelle (http://www.asciitable.com/)]
next i ( nächste Stelle des passwords bis alle 4 stellen voll sind)
f_create-PW = password (Passwort ist erstellt)

wie könnte man das PW nur mit den ASCII-Bereichen füllen?
laut der Tabelle sind

48-57 (Zahlen)
65-90 (Großbuchstaben)
97-122 (Kleinbuchstaben)

Gruß ulti

Nach oben