Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Zbyszek.J 20:40
 » m&m 20:38
 » esteban 20:35
 » Dexter 20:35
 » kyusi 20:34
 » DYD 20:32
 » Kenny 20:28
 » exmac 20:27
 » Ad@mus 20:23
 » Hitman 20:23
 » myszon 20:18
 » Paweł27 20:18
 » rainy 20:17
 » Master/Pe 20:14
 » Tomasz 20:14
 » Artaa 20:13
 » Syzyf 20:13
 » abes99 20:09
 » GLI 20:08
 » dugi 20:07

 Dzisiaj przeczytano
 27476 postów,
 wczoraj 31140

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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

  1. 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

    1. 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

      1. 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-sharp

        Powered by Linux and siemens s7
        PLCs...

        1. 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

          1. 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...

          2. 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

      2. 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

        1. to będzie finalnie , carlosA 27/01/17 23:28
          tylko jak napisałem wyżej, przeanalizuję jutro ;)

          #whatever

    2. Używając Random zawsze warto , Tomasz 28/01/17 12:24
      Random random = new Random(DateTime.Now.Miliseconds); dla uzyskania losowości

      https://www.siepomaga.pl/milosz-mosko

  2. Cis , blimonek 27/01/17 23:47
    Czyli C z krzyżykiem. Pierwszy czarny na 5 oktawowej klawiaturze

    1. 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

      1. Dokładnie , blimonek 28/01/17 10:30
        Ćwierć tony występują również u Hindusów, np przy sitrze.

        1. 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!

      2. 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