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

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
 
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 ?
 
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
 
hix dao này bận quá ko có thời gian học nữa:(. đang lưu link lại để có gì học sau vậy:D
 
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
 
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;
        }
 
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 .
 
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
 
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ạ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]
 
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
 
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
421,145
Messages
7,106,146
Members
173,231
Latest member
8daybingo

Most viewed of week

Most discussed of week

Most viewed of week

Most discussed of week

Back
Top Bottom