Hi!
Kellene egy kis segítség. Txt fájlt akarok kódolni egy spec módszerrrel.
A lénygeg:
text1 fájl tartalma:
alma alma korte
A kimeneti fájl tartalma text2.txt
a3l4m5a6 6a5l3m2a1 3k4o5r6t9e1
A lényeg, hogy minden karakter helyere (szóköz is) egy random (0-9 kozes eso ) szamot szurok be.
Köszi a segítséget.
- 1250 megtekintés
Hozzászólások
Miben kell?
- A hozzászóláshoz be kell jelentkezni
legegyszerűbb megvalósítás érdekel. Egyszerű alatt értsd azt, hogy, ubuntu rendszeren könnyen le tudjam futtatni.
- A hozzászóláshoz be kell jelentkezni
Ott a kolléga php-s változata, kis módosítással cli-n is fut.
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
akkor bash a barátod, illetve $(($RANDOM%10)).
(vagy $(expr $RANDOM % 10))
Javaslom tanulmányoznod még a read parancsot, és egy while ciklust, no meg a karakterenkénti stringföldolgozást.
ami át van húzva, azt teljesen fölösleges elolvasni. az olyan, mintha ott sem lenne
- A hozzászóláshoz be kell jelentkezni
Egy php-s valami:
<?php
$in = "alma korte barack";
$out = NULL;
for($i = 0; $i < strlen($in); $i++)
{
$out .= $in[$i] . rand(0,9);
}
print("Out: ".$out);
?>
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
Ez tényleg jó és működik is már csak azt kell megoldanom, hogy az ékezeteket is jól kezelje. Valószínű valami kódolás beállítás lesz.
- A hozzászóláshoz be kell jelentkezni
nyilván a multibyte karaktereket nemjól kezeli..
- A hozzászóláshoz be kell jelentkezni
C++ hányás (tuti rossz):
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream inFile;
ofstream outFile;
inFile.open("be.txt");
if(!inFile)
{
cout << "Could not open inFile!" << endl;
exit(1);
}
else
{
outFile.open("ki.txt");
if(!outFile)
{
cout << "Could not open outFile!" << endl;
exit(1);
}
else
{
while(!inFile.eof())
{
string temp = "";
int randInt = 0;
string::const_iterator ci;
getline(inFile, temp);
srand((unsigned)time(0));
for(ci = temp.begin(); ci != temp.end(); ci++)
{
if(*ci != '\n')
{
randInt = rand() % 10;
outFile << *ci << randInt;
}
}
outFile << endl;
}
}
}
inFile.close();
outFile.close();
return 0;
}
# g++ -omycrypto mycrypto.cpp
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
Szerintem
srand((unsigned)time(0));
<-- ezt a részt elég 1x, a ciklus előtt meghívni
---
"Ne ugass be mert felveszlek MSN-en és letiltalak vazze!"
- A hozzászóláshoz be kell jelentkezni
$(man awk)
$(man mawk)
$(man nawk)
$(man gawk)
szerk.:
kancsó szpemmerendzsínméjkernek teccik lenni vagy azt kicselezőnek?
ami át van húzva, azt teljesen fölösleges elolvasni. az olyan, mintha ott sem lenne
- A hozzászóláshoz be kell jelentkezni
megoldás pythonban...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, random, codecs
rnd = random
if len(sys.argv)<2:
print "A használathoz adj meg egy fájlnevet paraméterként! Például:"
print sys.argv[0], "valami.txt"
sys.exit(1)
for arg in sys.argv[1:]:
try:
f = codecs.open(sys.argv[1], 'r', 'utf-8')
except IOError:
print 'Nem tudtam megnyitni: ', arg
else:
f_ki = codecs.open(sys.argv[1].replace(".","_2."), 'w', 'utf-8')
f_ki.flush()
for sor in f.readlines():
sor_ki=""
for c in sor[0:len(sor)-1]:
sor_ki=sor_ki + c + str(rnd.randint(0,9))
print sor_ki
sor_ki = sor_ki + "\n"
f_ki.write(sor_ki)
f_ki.close()
f.close()
- A hozzászóláshoz be kell jelentkezni
Köszönöm mindenkinek a segítségét. Sikerült. :)
- A hozzászóláshoz be kell jelentkezni