Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Loại bỏ text trùng nhau từ một file text(.txt) - File văn bản

  1. #1
    Ngày gia nhập
    05 2008
    Bài viết
    0

    Question Loại bỏ text trùng nhau từ một file text(.txt) - File văn bản

    Mình có một danh sách số điện thoại, tương ứng vỡi mỗi số điện thoại là 1 dòng.

    Hiện tại tìm trên internet chưa có chương trình nào như thế nào ? Anh em C việt nhà mình có thể giúp mình được điều này không nhỉ ?

    Danh sách dạng như sau:
    0903931403
    0903835698
    0918143064
    0907403555
    0902207766
    0903707989
    0903413326
    0902778499
    0909105793
    0933931555
    ....


    Khoảng mấy ngàn số.. Làm thế nào mình kiểm tra 1 hàng rồi đem đi so sánh với các hàng khác nếu trùng nhau thì bỏ dòng được tìm thấy, còn không nếu không tiếp thấy thì chạy dòng tiếp theo ... viết giống như kiểu vòng lặp for vậy ?

    Anh em nào có code được ko nhỉ ? Viết bằng chương trình gì cũng dc ?


  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Notepad++ có chức năng sắp xếp các dòng theo thứ tự alphabet đồng thời remove các dòng trùng. Nếu sắp xếp lại cũng không sao thì bạn có thể dùng chức năng này ở menu TextFX/TextFX Tools/Sort outputs only UNIQUE... (select all trước)

  3. #3
    Ngày gia nhập
    07 2011
    Bài viết
    38

    C++ Code:
    1. #include<iostream>
    2. #include<fstream>
    3. #include<vector>
    4.  
    5. using namespace std;
    6.  
    7.  
    8.  
    9. int main()
    10. {
    11.     vector<string>ListV;
    12.     string buff;
    13.  
    14. //
    15. //Lay thong tin tu file goc, ghi cac gia tri vao vector ListV
    16. //
    17.     ifstream IN_FILE (/*đường dẫn file gốc của bạn*/);
    18.     if(!IN_FILE.good())
    19.     {
    20.         cerr<<"Khong tim thay file nguon"<<endl;
    21.         return 1;
    22.     }
    23.     else
    24.     {
    25.         while(!IN_FILE.eof())
    26.         {
    27.             IN_FILE>>buff;
    28.             cout<<buff<<endl;
    29.             ListV.push_back(buff);
    30.         }
    31.     }
    32.     IN_FILE.close();
    33.  
    34. //
    35. //Tien hanh so sanh va loai bo nhung gia tri lap lai bang cach
    36. //sua cac gia tri do ve "0"
    37. //
    38.     for(int i=0;i<ListV.size();i++)
    39.     {
    40.         for(int l=i+1;l<ListV.size();l++)
    41.         {
    42.             if(ListV[i]=="0") break;
    43.             else if (ListV[i]==ListV[l])  {  ListV[l]="0"; }
    44.         }
    45.     }
    46.  
    47. //
    48. //Tien hanh ghi cac gia tri trong vector ListV vao file ket qua
    49. //bo qua cac gia tri "0"
    50. //
    51.     ofstream OUT_FILE (/*đường dẫn file kết quả*/);
    52.     for(int i=0;i<ListV.size();i++)
    53.     {
    54.         if(ListV[i]!="0") OUT_FILE<<ListV[i]<<endl;
    55.     }
    56.     OUT_FILE.close();
    57.  
    58.     return 0;
    59. }
    Code mình chỉ chạy nếu file nguồn .txt của bạn có dạng đúng như bạn đã trình bày trên thôi, là:
    //FILE
    <số>
    <số>
    .....
    <số>
    //END FILE

    Ngoài ra mình cũng ko biết nếu nhiều số quá thì có chạy đc nữa ko biết?? (ko rõ cái cap của vector chứaa đc bao nhiêu )

  4. #4
    Ngày gia nhập
    05 2008
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi fbchicken Xem bài viết
    Notepad++ có chức năng sắp xếp các dòng theo thứ tự alphabet đồng thời remove các dòng trùng. Nếu sắp xếp lại cũng không sao thì bạn có thể dùng chức năng này ở menu TextFX/TextFX Tools/Sort outputs only UNIQUE... (select all trước)

    Chức năng textfc sao mình tìm không thấy vậy bạn ?


  5. #5
    Ngày gia nhập
    05 2008
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi tuanc Xem bài viết
    C++ Code:
    1. #include<iostream>
    2. #include<fstream>
    3. #include<vector>
    4.  
    5. using namespace std;
    6.  
    7.  
    8.  
    9. int main()
    10. {
    11.     vector<string>ListV;
    12.     string buff;
    13.  
    14. //
    15. //Lay thong tin tu file goc, ghi cac gia tri vao vector ListV
    16. //
    17.     ifstream IN_FILE (/*đường dẫn file gốc của bạn*/);
    18.     if(!IN_FILE.good())
    19.     {
    20.         cerr<<"Khong tim thay file nguon"<<endl;
    21.         return 1;
    22.     }
    23.     else
    24.     {
    25.         while(!IN_FILE.eof())
    26.         {
    27.             IN_FILE>>buff;
    28.             cout<<buff<<endl;
    29.             ListV.push_back(buff);
    30.         }
    31.     }
    32.     IN_FILE.close();
    33.  
    34. //
    35. //Tien hanh so sanh va loai bo nhung gia tri lap lai bang cach
    36. //sua cac gia tri do ve "0"
    37. //
    38.     for(int i=0;i<ListV.size();i++)
    39.     {
    40.         for(int l=i+1;l<ListV.size();l++)
    41.         {
    42.             if(ListV[i]=="0") break;
    43.             else if (ListV[i]==ListV[l])  {  ListV[l]="0"; }
    44.         }
    45.     }
    46.  
    47. //
    48. //Tien hanh ghi cac gia tri trong vector ListV vao file ket qua
    49. //bo qua cac gia tri "0"
    50. //
    51.     ofstream OUT_FILE (/*đường dẫn file kết quả*/);
    52.     for(int i=0;i<ListV.size();i++)
    53.     {
    54.         if(ListV[i]!="0") OUT_FILE<<ListV[i]<<endl;
    55.     }
    56.     OUT_FILE.close();
    57.  
    58.     return 0;
    59. }
    Code mình chỉ chạy nếu file nguồn .txt của bạn có dạng đúng như bạn đã trình bày trên thôi, là:
    //FILE
    <số>
    <số>
    .....
    <số>
    //END FILE

    Ngoài ra mình cũng ko biết nếu nhiều số quá thì có chạy đc nữa ko biết?? (ko rõ cái cap của vector chứaa đc bao nhiêu )
    Cảm ơn bạn nhiều nhé, mình sẽ chạy thử.


  6. #6
    Ngày gia nhập
    07 2011
    Bài viết
    59

    Mặc định Loại bỏ text trùng nhau từ một file text(.txt) - File văn bản

    ngồi rảnh viết thử đoạn bằng C (mới hoc C ):
    Bạn thử nhé, mình đã test ok.
    C Code:
    1. #include <stdio.h>
    2. #define MAX 100000
    3. main()
    4. {
    5.     FILE * pf;
    6.     char fname[200];
    7.     long long count = 0, i, j, t, a[MAX], temp2;
    8.    
    9.     printf("Nhap duong dan file: ");
    10.     gets(fname);
    11.     fflush(stdin);
    12.    
    13.     pf = fopen(fname, "r");
    14.    
    15.     if(pf == NULL)
    16.     {
    17.         printf("Khong tim thay file\n");
    18.     }else
    19.     {
    20.         while(!feof(pf))
    21.         {
    22.             fscanf(pf, "%lld%*c", (a + count));
    23.             count++;
    24.         }
    25.         for(i = 0;i < count;i++)
    26.         {
    27.             for(j = i + 1;j < count; j++)
    28.             {
    29.                 if(a[i] == a[j])
    30.                 {
    31.                     for(t = j; t < count; t++)
    32.                     a[t] = a[t + 1];
    33.                     j--;
    34.                     count--;
    35.                 }
    36.                
    37.             }
    38.         }
    39.     }
    40.     fclose(pf);
    41.    
    42.     //write
    43.     pf = fopen("Done.txt", "w");
    44.    
    45.     for(i = 0;i < count; i++)
    46.     {
    47.         fprintf(pf, "%010lld\n", a[i]);
    48.     }
    49.     printf("\nThuc hien thanh cong\n");
    50.     fclose(pf);
    51. }

  7. #7
    Ngày gia nhập
    05 2008
    Bài viết
    0

    Chạy không được pro ơi ! Xem giúp mình thử !
    Attached Files Attached Files


  8. #8
    Ngày gia nhập
    07 2011
    Bài viết
    38

    bạn xài code nào để chạy vậy ? nếu là xài code mình thì bạn nên lưu ý phần điền đường dẫn vào. Ví dụ như bạn để file gốc vào mục C thì chỗ đường dẫn vào phải là :
    C++ Code:
    1. ifstream IN_FILE ("C:\\new2.txt");  // giả sử đây là file new2.txt , nằm ở C:\  
    2.                                                // lưu ý trong đường dẫn gồn 2 dấu \\
    Lưu ý tương tự khi nhập đường dẫn file kết quả
    p.s: mà bạn bị lỗi chỗ nào thế? nó báo thế nào?

Các đề tài tương tự

  1. Lập trình C Tách từ ra khỏi file văn bản text đã lưu từ trước. Mọi người giúp với
    Gửi bởi CodeC_to trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 12
    Bài viết cuối: 13-07-2012, 10:35 PM
  2. Algorithm Loại bỏ dòng trắng trong file text như thế nào?
    Gửi bởi soft4mac trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 01-12-2011, 08:49 AM
  3. Đọc dữ liệu file midi dạng số HEX và lấy lời nhạc trong file ra file text
    Gửi bởi kimngockhtn_2007 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-06-2011, 04:40 PM
  4. Text File Protector - Bảo vệ file text bằng password (siêu ẩn)
    Gửi bởi gianghoplus trong diễn đàn Sản phẩm phần mềm của bạn
    Trả lời: 10
    Bài viết cuối: 08-05-2009, 09:27 AM
  5. Bai tap ve file!Tạo một file text trong đó mỗi dòng lưu 3 số nguyên
    Gửi bởi sonsdc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 06-03-2009, 10:59 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn