1.4k Aufrufe
Gefragt in Textverarbeitung von
Hey ihr Programmierer da draußen!

Wie schreibe ich ein Programm, das so funktioniert:

Man gibt eine Zahl ein und das Programm spuckt einem eine Zeichenkette aus, die so lang
ist, wie die Zahl, die man eingegeben hat (amt's besten noch mit zufallszeichen).
Wahrscheinlich geht des mit so einer WHILE Schleife, wie aber programmieren??

1.Gibt's so was schon??

2. Kann des einer von euch in einer einfachen Sprache programmieren (BATCH, ...)???

Danke!

Leider habe ich seit min. 1 Jahr nix mehr programmiert und wüsste nicht, wie ich das programmieren sollte (variablen deklarieren, aber while schleife. da hörts auf...)
Sonst würde ich es selbst programmieren.

5 Antworten

0 Punkte
Beantwortet von halfstone Profi (18.1k Punkte)
Hi Old_Programmer,

kopier den Code mal in einen Texteditor und speichere das Ganze als wort.bat ab, die kannst du dann mit einem Doppelklick ausführen:

@echo off & setlocal enabledelayedexpansion
call "C:\batchordner\allgemein"
:: CLS
set "text=abcdefghigklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"

:pass
cls
set /p "laenge=Wie lang soll das Passwort sein ? "

if not %laenge% GEQ 6 (
echo "Zur sicherheit sollte das Passwort mindestens 6 Zeichen lang sein."
pause
goto pass
)

cls
echo Es werden 5 Passwortvorschl%ae%ge gezeigt
echo.
pause
cls

for /L %%i in (1,1,5) do (
set "pass="
for /L %%u in (1,1,%laenge%) do call :setz
echo !pass!
)
pause
goto :eof

:setz
set /a x=%random% %% 62
set "Zufallszeichen=!text:~%x%,1!"
set "pass=%pass%%Zufallszeichen%"
goto :eof


Das ist ein Script mit dem man mehrere Wörter erzeugen kann, sollte aber für deine Zwecke auch funktionieren.

Gruß Fabian
0 Punkte
Beantwortet von
Hey Fabian!
Danke, das hat mir sehr weiter geholfen!!
Nun versuche ich es in SAP zu programmieren...
Danke!!
0 Punkte
Beantwortet von
Am besten wär's, wenn man des rauskopieren könnte...
0 Punkte
Beantwortet von
Jetzt hab ich's in SAP!!!

parameter i_int type i.

data: s_string type string,
s_stri_i type i.

s_string = 'A'.
s_stri_i = 1.

while s_stri_i < i_int. "Solange der String nicht so lang ist wie i_Int/das, was der Benützer ausgewählt hat...
concatenate s_string 'A' into s_string. " (s_string) + 'A'
s_stri_i = s_stri_i + 1. " Die Länge des Strings ist nun eins mehr...
* Nochmal, bis Bedingung erfüllt ist.....
endwhile.

write s_string(100).
0 Punkte
Beantwortet von xmax Experte (4.1k Punkte)
Hi @halfstone, eine gute Batch...
Man kann noch eine Leerzeile in der Ausgabe setzen, damit man besser die Passwörter ablesen kann.
Etwa so:
...
...
for /L %%i in (1,1,5) do (
set "pass="
for /L %%u in (1,1,%laenge%) do call :setz
echo !pass!
echo.
)
pause
goto :eof
...
...

mfg xmax
...