Solved [Lớp học lập trình] Bài 4: Project SSH All In One - Part 2

kokoro

Banned
Joined
Aug 6, 2015
Messages
71
Reactions
25
MR
0.000
cho mình hỏi tí ví dụ mình nhập vào
Support
Home
Contack

Giờ mình muốn nó tìm kiếm từ " Support " và thay thế nó bởi " Hỗ Trợ " ( y chang như chức năng tìm kiếm và thay thế Ctr + H )

Vậy cho mình xin code để làm như vậy
 

khanhqb88

Junior
Joined
Feb 1, 2013
Messages
190
Reactions
80
MR
0.000
Chat with me via Skype
6907031__nh_ch_p_m_n_h_nh_2015.png

mình muốn check trùng nhưng check mỗi ip thôi, trùng ip là loại con SSH đó luôn, mình viết thế này sao chỗ nào mà nó ko chạy, xuất ko ra con SSH nào hết
 

ntquynh89

Hero
Joined
Jun 6, 2013
Messages
1,073
Reactions
391
MR
0.437
Mỗi bài học của anh đều rất ý nghĩa + tâm huyết . Thiết nghĩ BQT nên pin các bài của a để mọi ng có thể theo dõi . Mấy bài cũ bị trôi trang sau hết rồi :D
 

smallboy

Junior
Joined
Jul 21, 2015
Messages
246
Reactions
150
MR
0.000
góp ý phần check trùng để chạy mượt với số lượng lớn và cực lớn :D

Code:
        private String[] get_unique_ssh(String[] list_ssh)
        {
            String[] result = null;
            try
            {
                var obj_unique = new HashSet<String>(list_ssh);

                result = obj_unique.ToArray<String>();
            }
            catch (Exception) { }

            return result;
        }
 

leminhtien

Hero
Kindness
Verified
Joined
Dec 18, 2013
Messages
839
Reactions
746
MR
1.102
góp ý phần check trùng để chạy mượt với số lượng lớn và cực lớn :D

Code:
        private String[] get_unique_ssh(String[] list_ssh)
        {
            String[] result = null;
            try
            {
                var obj_unique = new HashSet<String>(list_ssh);

                result = obj_unique.ToArray<String>();
            }
            catch (Exception) { }

            return result;
        }
Bạn giải thích ý nghĩa phần góp ý được ko , đa phần anh em học ở đây toàn chưa biết gì về c# . Mong bạn cho ý nghĩa từng câu lệnh để anh em dễ hiểu hơn .
 

thanh858036

Banned
Joined
May 16, 2012
Messages
121
Reactions
15
MR
0.000
Hỏi thêm nữa là dữ liệu nhập vào mình ko phải copy mà Load luôn cái notepad vào thì code như thế nào ?
Code:
private void Form1_Load(object sender, EventArgs e)
        {
            StreamReader streamReader = new StreamReader(filePath);
            richTextBox1.Text = streamReader.ReadToEnd();
            streamReader.Close();
        }
như này khi chạy là tự load
 
Bạn giải thích ý nghĩa phần góp ý được ko , đa phần anh em học ở đây toàn chưa biết gì về c# . Mong bạn cho ý nghĩa từng câu lệnh để anh em dễ hiểu hơn .
ví dụ như thuật toán của b #23 kia thì độ phức tạp là n(n+1)/2 với n là số ssh đầu vào. như vậy với số lượng đầu vào lớn thì sẽ chạy chậm :)

b đó có thể cải thiện bằng cách dùng thuật toán quick sort để sắp xếp lại ssh trước khi kiểm tra unique ssh thì sẽ chạy nhanh hơn, độ phức tạp của quick sort là n*log(n)

tuy nhiên thay vì tự viết .net đã cung cấp sẵn thư viện mà thư viện của .net thì luôn tối ưu chạy nhanh nhất :)

var obj_unique = new HashSet<String>(list_ssh);

result = obj_unique.ToArray<String>();

màu xanh để để khởi tạo đối tượng HashSet mà .net thư viện cung cấp sẵn, đầu vào là mảng list_ssh với kiểu dữ liệu là String,

HashSet<kiểu dữ liệu> ví dụ HashSet<String>, HashSet<int>, ...

màu đỏ là để trả về danh sách ssh đã kiểm tra trùng. :D
:D
 
bạn nên chèn code đừng có đưa cái hình vậy
thay như này
Code:
ssh_moi_ip[i]
Code:
ssh_moi_ip[0]
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Loc_SSH
{
    public partial class Form1 : Form
    {
        MySSH my_SSH = new MySSH();
        public Form1()
        {
            InitializeComponent();
        }
        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void bnKetqua_Click(object sender, EventArgs e)
        {
            String[] SSH_mang_moi = txtmoi.Text.Trim().Split(new string[]{Environment.NewLine},StringSplitOptions.None);
            String[] SSH_mang_cu = txtcu.Text.Trim().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

            if (rdloctrungnhau.Checked == true)
            {
                txtKetqua.Text=string.Join(Environment.NewLine,my_SSH.SSH_dup(SSH_mang_moi));
            }
            else if (rdlocsshfilecuip.Checked==true)
            {
                MessageBox.Show("bạn chọn lọc ip");
            }
            else if (rdlocsshfilecuca.Checked == true)
            {
                MessageBox.Show("bạn chọn lọc ca");
            }
        }

    }
}
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Loc_SSH
{
    public class MySSH
    {
        public List<string> SSH_dup(string[] SSH_dauvao)
        {
            List<string> List_daura = new List<string>();
            for (int i = 0; i < SSH_dauvao.Length; i++)
            {
                string SSH_moi = SSH_dauvao[i];
                if (string.IsNullOrEmpty(SSH_moi) == false)
                {
                    String[] SSH_moi_ip = SSH_moi.Trim().Split('|');
                    for (int j = 0; j < List_daura.Count; j++)
                    {
                        if(List_daura[j].Contains(SSH_moi_ip[0])==false)
                        {
                            List_daura.Add(SSH_moi);
                            break;
                        }
                    }
                }
            }
            return List_daura;
        }
        public List<string> SSH_ip(string[] SSH_dauvao)
        {
            return null;
        }
        public List<string> SSH_ca(string[] SSH_dauvao)
        {
            return null;
        }
    }
}
cậu xem lại tớ với thay SSH_moi_ip[0] cung ko chay ra kết quả được
 

tunvit

Vip
Verified
Joined
Jun 5, 2011
Messages
3,685
Solutions
1
Reactions
11,910
MR
46.429
Chat with me via Yahoo Messenger Chat with me via Skype
góp ý phần check trùng để chạy mượt với số lượng lớn và cực lớn :D

Code:
        private String[] get_unique_ssh(String[] list_ssh)
        {
            String[] result = null;
            try
            {
                var obj_unique = new HashSet<String>(list_ssh);

                result = obj_unique.ToArray<String>();
            }
            catch (Exception) { }

            return result;
        }
Cám ơn bạn vì góp ý nhưng mình chưa có dạy kiến thức này , trong video mình cũng nói rõ, là mình dạy mức cơ bản nhất để các bạn trong đây ko bị khớp, dễ tiếp thu (chắc bạn ko coi video), tool ban đầu sẽ chỉ toàn kiến thức cơ bản ai cũng có thể làm, sau khi nào xong sẽ update tool lại. Btw, hashset vẫn rất chậm, linq mới bá nhất.
 
Hỏi thêm nữa là dữ liệu nhập vào mình ko phải copy mà Load luôn cái notepad vào thì code như thế nào ?
Từ từ bạn ơi, rồi sẽ có :D
6907031__nh_ch_p_m_n_h_nh_2015.png

mình muốn check trùng nhưng check mỗi ip thôi, trùng ip là loại con SSH đó luôn, mình viết thế này sao chỗ nào mà nó ko chạy, xuất ko ra con SSH nào hết
Bài 5 mình sẽ làm chức năng này mà, cứ bình tĩnh :D
 

Announcements

Today's birthdays

Forum statistics

Threads
424,007
Messages
7,138,641
Members
176,499
Latest member
vin777garden

Most viewed of week

Most discussed of week

Most viewed of week

Most discussed of week

Back
Top Bottom