TwojePC.pl © 2001 - 2025
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
C# string to char, char to string -pomysły? (czyli co robię źle) , carlosA 27/01/17 21:13 Jako że podobno nadal jest to forum komputerowe to takie małe śmieszne zadanie (zapewne na poziomie pierwszej klasy gimnazjum).
Wymyśliłem sobie coś takiego: losowe hasło w postaci: a1b2c3 (to jest: mała litera, cyfra, mała liter itd.). Wymyśliłem sobie to tak: losuję ze stringa najpierw 3 litery, po czym 3 cyfry. W wyniku dostaję dwa stringi: 3 litery i 3 cyfry, następnie chcę połączyć naprzemiennie pierwszą wylosowaną literę + pierwsza wylosowana cyfra +druga wylosowana litera etc.... I o ile potrafię wyciągnąć poszczególne znaki (char) o tyle nie potrafię tego połączyć ponownie w string.
http://pastebin.com/h2HCVf0R
Ciekaw jestem też innych rozwiązań (w C# rzecz jasna), oczywiście takich z wytłumaczeniem, ot! do specyficznego celu naszło mnie na napisanie takiego programu, inne funkcje działają poprawnie, chociaż pewnie zadam jeszcze kilka pytań i to takich na zielonym poziomie ;)#whatever - Możesz dodać jedną linię , Visar 27/01/17 22:19
string result = zf.ToString() + lf.ToString() + zs.ToString() + ls.ToString() + zt.ToString() + lt.ToString();
lub całość w krótszej formie:
Random random = new Random();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < 3; i++)
{
sb.Append(Convert.ToChar(random.Next('z' - 'a' + 1) + 'a'));
sb.Append(Convert.ToChar(random.Next('9' - '0' + 1) + '0'));
}
string result = sb.ToString();Visar - takoż mądrego dobrze poczytać.... , carlosA 27/01/17 22:51
jakaś godzina poszukiwania rozwiązania, a Ty podałeś to czego mi brakowało char.ToString(). Oczywiście drugie rozwiązanie o wiele bardziej eleganckie, przeanalizuję jutro. Dziękuję :)#whatever - Dawno nie C# , Fox 27/01/17 22:58
Ale nie łatwiej Ci będzie jeździć po tablicy bajtów ?
http://stackoverflow.com/...-byte-array-in-c-sharpPowered by Linux and siemens s7
PLCs...
- hmmm...(Visar też proszę spójrz) , carlosA 27/01/17 23:27
Może opiszę Ci to inaczej i w telegraficznym skrócie:
1. Wyciągam sobie z bazy imię i nazwisko -zrobione
2. Pozbywam się polskich znaków -mam problem z private string -ale na tę chwilę mniejsza z tym.
3. Formatuje imię i nazwisko do formy imie.nazwisko (jako login) -zrobione
4. Generuje hasło ww formie (długość i bardziej skomplikowane formy to wariacje na temat) -zrobione dzięki pomocy kol. Visar
5. Wywalam całość do odpowiedniego pliku konfiguracyjnego, gdzie całość może być plain textem -nie zrobione, ale to akurat też nie jest na ten moment problem.
Nie wiem, czy jest sens komplikować w podany przez Ciebie sposób, jeśli oczywiście można to uznać za komplikowanie?
#whatever - Wybacz, bardziej już nie pomogę :) , Fox 28/01/17 01:08
Jak już wspominałem dawno już nie C#, pracuje na dość niskim levelu gdzie tablice bajtów/charów wydawały się lepszym pomysłem, ale po rozwinięciu Twojego opisu idę się schować do szafy elektrycznej, chyba kolega Visar ma lepszą metodę ;)Powered by Linux and siemens s7
PLCs...
- To można w skrócie zrobić np tak: , Visar 28/01/17 15:15
public static void CreateLoginAndPasswordAndSaveToFile(string destinationFolder, string name, string surname, int noPasswordGroups)
{
string login = Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-8").GetBytes(name.ToLower() + "." + surname.ToLower()));
Random random = new Random(DateTime.Now.Millisecond);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < noPasswordGroups; i++)
{
sb.Append(Convert.ToChar(random.Next('a', 'z' + 1)));
sb.Append(Convert.ToChar(random.Next('0', '9' + 1)));
}
string password = sb.ToString();
File.WriteAllLines(Path.Combine(destinationFolder, login + ".txt"), new string[] { login, password });
}
Podajesz na wejściu wyciągnięte z bazy imię i nazwisko, ilość grup litera-cyfra w haśle i docelowy katalog gdzie ma być zapisane plik z loginem i hasłem.
Przykładowe użycie:
CreateLoginAndPasswordAndSaveToFile("d:", "Michał", "Bączyński", 4);
CreateLoginAndPasswordAndSaveToFile("d:", "Anna", "Kowalska", 3);
CreateLoginAndPasswordAndSaveToFile("d:", "Łucja", "Białek", 6);
Z tym, jeśli będziesz tego używał w pętli dla wielu użytkowników to linię
Random random = new Random(DateTime.Now.Millisecond);
zostaw gdzieś na początku programu i usuń z tej funkcji.Visar
- Można jeszcze random w innej postaci wywołać , Visar 27/01/17 23:01
Random random = new Random();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < 3; i++)
{
sb.Append(Convert.ToChar(random.Next('a', 'z' + 1)));
sb.Append(Convert.ToChar(random.Next('0', '9' + 1)));
}
string result = sb.ToString();
Visar - to będzie finalnie , carlosA 27/01/17 23:28
tylko jak napisałem wyżej, przeanalizuję jutro ;)#whatever
- Używając Random zawsze warto , Tomasz 28/01/17 12:24
Random random = new Random(DateTime.Now.Miliseconds); dla uzyskania losowościhttps://www.siepomaga.pl/milosz-mosko
- Cis , blimonek 27/01/17 23:47
Czyli C z krzyżykiem. Pierwszy czarny na 5 oktawowej klawiaturze- niezmiernie cenna uwaga... , carlosA 28/01/17 00:10
przy czym nie potrzeba do tego 5 oktawowej klawiatury, wystarczy jeden czarny cis. Skądinąd ciekawostką jest, że podobno w muzyce arabskiej istnieją podziały ćwiertonowe.#whatever - Dokładnie , blimonek 28/01/17 10:30
Ćwierć tony występują również u Hindusów, np przy sitrze.
- Ciężkie te sitry. , Dexter 28/01/17 10:33
Jak oni je noszą?Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
Odpowiedzi oleję.
THX!
- Generalni jest cała dziedzina "microtonal music" , jenot 28/01/17 11:12
Penderecki też się w tym udzielał choć programistą chyba nie jest :-)Mój podpis max 100 zanaków,
zabroniony spam oraz reklama.
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
|
|
|
|