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

Đề tài: Hàm đọc dữ liệu từ file....không load dữ liệu lên

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    10

    Smile Hàm đọc dữ liệu từ file....không load dữ liệu lên

    C++ Code:
    1. #include<iostream.h>
    2. #include<fstream.h>
    3. #include<string.h>
    4. #include<stdio.h>
    5. #include<stdlib.h>
    6. struct thisinh{
    7.     char sbd[10];
    8.     char ht[100];
    9.     char dc[200];
    10.     float toan;
    11.     float ly;
    12.     float hoa;
    13. };
    14. int N=100;
    15. int sots=0;
    16. int timkiem(thisinh ds[],char * sbd)
    17. {
    18.     for(int i=0;i<sots;i++){
    19.     if(strcmpi(ds[i].sbd,sbd)==0)
    20.     return i;
    21.     }
    22.     return -1;
    23. }
    24. int themts(thisinh ds[],thisinh ts)
    25. {
    26.     if(timkiem(ds,ts.sbd)==-1)
    27.     {
    28.         ds[sots]=ts;
    29.         sots++;
    30.         return 1;
    31.     }return -1;
    32. }
    33. void inds(thisinh ds[])
    34. {
    35.     for(int i=0;i<sots;i++)
    36.     {
    37.     cout<<"--------------------------------------------------------------\n";
    38.     cout<<"So bao danh: "<<ds[i].sbd<<"\t";
    39.     cout<<"Ho va ten: "<<ds[i].ht<<'\t';
    40.     cout<<"Dia chi: "<<ds[i].dc<<'\t';
    41.     cout<<"Diem toan: "<<ds[i].toan<<"\tLy:"<<ds[i].ly<<"\tHoa:"<<ds[i].hoa;
    42.     cout<<endl;
    43.     }
    44. }
    45. int xoats(thisinh ds[], int n, char*sbd)
    46. {
    47.     int x=timkiem(ds,sbd);
    48.     if(x==1)
    49.     {
    50.         cout<<"Khong co thi sinh co so bao danh nay";
    51.         return -1;
    52.     }          
    53.     for(int i=0;i<sots;i++)
    54.     ds[i]=ds[i+1];
    55.     sots--;
    56.  }
    57. //ham ghi du lieu xuong file
    58. void write2file(char * filename, thisinh ds[],int n){
    59.     ofstream fs(filename, ios::binary | ios::out );//| ios::app
    60.     for(int i=0;i<n;i++){
    61.     fs.write((char*)&ds[i],sizeof(ds[i]));
    62.     }
    63.     fs.close();
    64. }
    65. //hàm doc du lieu tu file
    66. void readfromfile(char * filename, thisinh ds[]){
    67.     ifstream infile(filename,ios::in|ios::binary);
    68.     thisinh ts;
    69.     infile.read((char*)&ts,sizeof(thisinh));
    70.     sots=0;
    71.     while(!infile.eof()){
    72.      ds[sots]=ts;
    73.      sots++;
    74.      infile.read((char*)&ts,sizeof(thisinh));
    75.   }
    76.     infile.close();
    77. }
    78. int main()
    79. {
    80.     int n=0;
    81.     thisinh ds[n];
    82.     cout<<"Loading data...\n";
    83.     readfromfile("c:\\data.data",ds);
    84.     cout<<"loading completed with "<<sots<<" records.\n";
    85.     cout<<"\tBai tap Labreport"<<endl;
    86.     cout<<"1.Nhap thong tin thi sinh."<<endl;
    87.     cout<<"2.in ds."<<endl;
    88.     cout<<"3.Xoa thi sinh khi biet so bao danh."<<endl;
    89.     cout<<"20.Exit"<<endl;
    90.     do{
    91.         int tl;
    92.         cin>>tl;
    93.         switch(tl)
    94.         {
    95.             case 1:
    96.             float t,l,h;
    97.             thisinh ts;
    98.             cout<<"Nhap so bao danh: ";gets(ts.sbd);
    99.             cout<<"Nhap ten: ";gets(ts.ht);
    100.             cout<<"Nhap dia chi: ";gets(ts.dc);
    101.             cout<<"Nhap diem toan:";cin>>t;
    102.             cout<<"Nhap diem ly:";cin>>l;
    103.             cout<<"Nhap diem hoa:";cin>>h;
    104.             ts.toan=t;ts.ly=l,ts.hoa=h;
    105.             themts(ds,ts);
    106.             break;
    107.             case 2:
    108.             inds(ds);
    109.             break;
    110.             case 3:
    111.             cout<<"Nhap so bao danh mun xoa: ";
    112.             gets(ts.sbd);
    113.             xoats(ds,n,ts.sbd);
    114.             cout<<"Danh sach sau khi xoa";
    115.             inds(ds);
    116.             break;
    117.             case 20:
    118.             write2file("c:\\data.data",ds,sots);
    119.             cout<<"Du lieu da duoc luu vao file. \nFinished";
    120.             exit(1);
    121.             break;
    122.         }
    123.     }while(1);
    124.     return 1;
    125. }
    hàm thì đúng ....nhưng khi load dữ liệu thì nó đứng im và ko chạy...ko lên được dữ liệu đã lưu..mọi người giúp em cái này...
    Mình đã tìm dc lỗi sai mong mod xóa dùm topic này thanks
    Đã được chỉnh sửa lần cuối bởi dexter2011 : 06-10-2011 lúc 01:21 PM. Lý do: đã tìm được lỗi sai

  2. #2
    Ngày gia nhập
    09 2010
    Bài viết
    1

    Mình cũng đang cần đoạn code đọc file, bạn có thể post bài sữa lên cho mình tham khảo được ko

  3. #3
    Ngày gia nhập
    09 2010
    Nơi ở
    Linux-Ubuntu
    Bài viết
    217

    QUan trọng là bạn tổ chức cấu trúc trong file như thế nào, chứ hỏi thế này, thì chịu luôn !
    ++Sự Học Không Bao Giờ Là Muộn++
    ---Sướng Thì Ta Làm, Thích Thì Sẽ Được---
    ......Đôi khi bỏ học cũng là một bước đột phá...

    ***HỘI NHỮNG NGƯỜI PHÁT CUỒNG VÌ LINUX***

  4. #4
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    Test qua code thấy bạn lỗi 2 chỗ: Chỗ định nghĩa hàm
    Bạn sử dụng là char* nhưng sử dụng lại là const char*. Một số IDE cho phép điều này
    còn một số thì không. Công việc của bạn chỉ cần thêm const trước char chỗ filename

    ps: Nếu tìm được key mà xóa đi bài thì forums đâu còn là forums nữa ?
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

  5. #5
    Ngày gia nhập
    09 2011
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi tutakhalu Xem bài viết
    Mình cũng đang cần đoạn code đọc file, bạn có thể post bài sữa lên cho mình tham khảo được ko
    đây bạn..
    C++ Code:
    1. #include<iostream.h>
    2. #include<fstream.h>
    3. #include<string.h>
    4. #include<stdio.h>
    5. #include<stdlib.h>
    6. struct thisinh{
    7.     char sbd[15];
    8.     char ht[150];
    9.     char dc[300];
    10.     float toan;
    11.     float ly;
    12.     float hoa;
    13. };
    14. int N=100;
    15. int sots=0;
    16. //Ham tim kiem thi sinh trong danh sach
    17. int timkiem(thisinh ds[],char *sbd)
    18. {
    19.     for(int i=0;i<sots;i++)
    20.         if(strcmpi(ds[i].sbd,sbd)==0)
    21.             return i;
    22.     return -1;  
    23. }
    24. //Ham them thi sinh vao danh sach thi sinh
    25. int themts(thisinh ds[],thisinh ts)
    26. {
    27.     if(timkiem(ds,ts.sbd)==-1)
    28.     {
    29.         ds[sots]=ts;
    30.         sots++;
    31.         return 1;
    32.     }
    33.     return -1;
    34. }
    35. //Ham in danh sach thi sinh
    36. void inds(thisinh ds[])
    37. {
    38.     for(int i=0;i<sots;i++){
    39.     cout<<"--------------------------------------------------------------\n";
    40.     cout<<"So bao danh: "<<ds[i].sbd<<endl;
    41.     cout<<"Ho va ten: "<<ds[i].ht<<endl;
    42.     cout<<"Dia chi: "<<ds[i].dc<<endl;
    43.     cout<<"Diem toan: "<<ds[i].toan<<"\tLy:"<<ds[i].ly<<"\tHoa:"<<ds[i].hoa;
    44.     cout<<endl;
    45.     }
    46. }
    47. //Ham xoa thi sinh theo so bao danh
    48. //x la vi tri thi sinh muon xoa
    49. int xoats(thisinh ds[], int N, char*sbd)
    50. {
    51.     int x=timkiem(ds,sbd);
    52.     if(x==-1)
    53.     {
    54.         cout<<"***Khong ton tai sinh vien nay***";
    55.         return -1;
    56.     }          
    57.     for(int i=0;i<sots;i++)
    58.         if(i==x){
    59.             ds[i]=ds[i+1];
    60.             sots--;
    61.         }
    62.  }
    63. //Ham tim kiem thi sinh theo so bao danh trong danh sach thi sinh
    64. int timkiemsbd(thisinh ds[],char * sbd)
    65. {
    66.     for(int i=0;i<sots;i++){
    67.         if(strcmpi(ds[i].sbd,sbd)==0){
    68.             cout<<"--Thong tin thi sinh co so bao danh "<<ds[i].sbd<<" la: "<<endl;
    69.             cout<<"+So bao danh: "<<ds[i].sbd<<endl;
    70.             cout<<"+Ho va ten: "<<ds[i].ht<<endl;
    71.             cout<<"+Dia chi: "<<ds[i].dc<<endl;
    72.             cout<<"+Diem toan: "<<ds[i].toan<<"\tLy:"<<ds[i].ly<<"\tHoa:"<<ds[i].hoa;
    73.         }
    74.     }
    75.     return -1;
    76. }
    77.  //Ham tim kiem thi sinh theo ten trong danh sach
    78. int timkiemten(thisinh ds[],char * ht)
    79. {
    80.     for(int i=0;i<sots;i++){
    81.         if(strcmpi(ds[i].ht,ht)==0){
    82.             cout<<"--Thong tin thi sinh co ho ten "<<ds[i].ht<<" la: "<<endl;
    83.             cout<<"+So bao danh: "<<ds[i].sbd<<endl;
    84.             cout<<"+Ho va ten: "<<ds[i].ht<<endl;
    85.             cout<<"+Dia chi: "<<ds[i].dc<<endl;
    86.             cout<<"+Diem toan: "<<ds[i].toan<<"\tLy:"<<ds[i].ly<<"\tHoa:"<<ds[i].hoa;
    87.         }
    88.     }
    89.     return -1;
    90. }
    91. //Ham xep thi sinh theo ten
    92. //Copy tu blog cua thay Hai
    93. void xeptheoten(thisinh ds[])
    94. {
    95.     for(int i=0;i<sots-1;i++)
    96.         for(int j=i+1;j<sots;j++){
    97.             if (strcmpi(ds[i].ht,ds[j].ht)==1)
    98.             {
    99.                 thisinh t = ds[i];
    100.                 ds[i]=ds[j];
    101.                 ds[j]=t;
    102.             }
    103.         }
    104.  }
    105. //Ham xep thi sinh theo diem
    106. void xeptheodiem(thisinh ds[])
    107. {
    108.     for(int i=0;i<sots-1;i++)
    109.         for(int j=i+1;j<sots;j++){
    110.             float diem1=ds[i].toan+ds[i].ly+ds[i].hoa;
    111.             float diem2=ds[j].toan+ds[j].ly+ds[j].hoa;
    112.             if (diem1>diem2)
    113.             {
    114.                 thisinh t = ds[i];
    115.                 ds[i]=ds[j];
    116.                 ds[j]=t;
    117.             }
    118.         }
    119. }
    120. //Ham hieu chinh thong tin thi sinh
    121. //x la vi tri thi sinh can doi thong tin
    122. int hieuchinhthongtints(thisinh ds[],char*sbd,thisinh ts)
    123. {
    124.     int x=timkiem(ds,ts.sbd);
    125.     if(x==-1)
    126.     {
    127.         cout<<"***Khong ton tai sinh vien nay***";
    128.         return -1;
    129.     }
    130.     float t,l,h;
    131.     cout<<"Nhap so bao danh muon doi: ";gets(ts.sbd);
    132.     cout<<"Nhap ten muon doi: ";gets(ts.ht);
    133.     cout<<"Nhap dia chi muon doi: ";gets(ts.dc);
    134.     cout<<"Nhap diem toan muon doi:";cin>>t;
    135.     cout<<"Nhap diem ly muon doi:";cin>>l;
    136.     cout<<"Nhap diem hoa muon doi:";cin>>h;
    137.     ts.toan=t;ts.ly=l,ts.hoa=h;
    138.     ds[x].sbd=ts.sbd;
    139.     ds[x].ht=ts.ht;
    140.     ds[x].dc=ts.dc;
    141.     ds[x].toan=ts.toan;
    142.     ds[x].ly=ts.ly;
    143.     ds[x].hoa=ts.hoa;
    144. }
    145. void xeptheosbd(thisinh ds[])
    146. {
    147.     for(int i=0;i<sots-1;i++)
    148.         for(int j=i+1;j<sots;j++){
    149.             if (strcmpi(ds[i].sbd,ds[j].sbd)==1)
    150.             {
    151.                 thisinh t = ds[i];
    152.                 ds[i]=ds[j];
    153.                 ds[j]=t;
    154.             }
    155.         }
    156.  }
    157. //Ham tim kiem thi sinh bang phuong phap nhi phan
    158. /*int tknhiphan(thisinh ds[],char*sbd,int left,int right)
    159. {
    160.     if(left<=right)
    161.     {
    162.         int mid=(left+right)/2;
    163.         if(strcmpi(ds[mid].sbd,sbd)==0)
    164.            return mid;
    165.         else if(strcmpi(ds[mid].sbd,sbd)==1)
    166.                 return tknhiphan(ds,sbd,left,mid-1);
    167.         else
    168.                 return tknhiphan(ds,sbd,mid+1,right);    
    169.     }
    170.     return -1;
    171. }*/
    172. //ham ghi du lieu xuong file
    173. //Ham nay duoc copy tu blog cua thay Hai
    174. void write2file(char * filename, thisinh ds[],int n){
    175.     ofstream fs(filename, ios::binary | ios::out );//| ios::app
    176.     for(int i=0;i<n;i++){
    177.     fs.write((char*)&ds[i],sizeof(ds[i]));
    178.     }
    179.     fs.close();
    180. }
    181. //hàm doc du lieu tu file
    182. //Ham nay duoc copy tu blog cua thay Hai
    183. void readfromfile(char * filename, thisinh ds[]){
    184.     ifstream infile(filename,ios::in|ios::binary);
    185.     thisinh ts;
    186.     infile.read((char*)&ts,sizeof(thisinh));
    187.     sots=0;
    188.     while(!infile.eof()){
    189.      ds[sots]=ts;
    190.      sots++;
    191.      infile.read((char*)&ts,sizeof(thisinh));
    192.   }
    193.     infile.close();
    194. }
    195. int main()
    196. {
    197.     thisinh ds[N];
    198.     readfromfile("c:\\data.data",ds);
    199.     do{
    200.         system("cls");
    201.         cout<<"\t----------Bai tap Labreport 1----------"<<endl;
    202.         cout<<"1.Nhap thong tin thi sinh."<<endl;
    203.         cout<<"2.In danh sach thi sinh vua nhap."<<endl;
    204.         cout<<"3.Xoa thi sinh khi biet so bao danh."<<endl;
    205.         cout<<"4.Tim thi sinh theo so bao danh."<<endl;
    206.         cout<<"5.Tim thi sinh theo ho ten."<<endl;
    207.         cout<<"6.Sap xep thi sinh theo ho ten."<<endl;
    208.         cout<<"7.Sap xep thi sinh theo tong diem."<<endl;
    209.         cout<<"8.Hieu chinh thong tin thi sinh."<<endl;
    210.         cout<<"9.Sap xep thi sinh theo so bao danh."<<endl;
    211.         //cout<<"10.Tim kiem thi sinh bang phuong phap nhi phan"<<endl;
    212.         cout<<"10.Luu file va Thoat..."<<endl;
    213.         cout<<"\n---Chon so tuong ung muc luc---: ";
    214.         int tl;
    215.         cin>>tl;
    216.         switch(tl)
    217.         {
    218.             case 1:
    219.             float t,l,h;
    220.             thisinh ts;
    221.             cout<<"Nhap so bao danh: ";gets(ts.sbd);
    222.             cout<<"Nhap ten: ";gets(ts.ht);
    223.             cout<<"Nhap dia chi: ";gets(ts.dc);
    224.             cout<<"Nhap diem toan:";cin>>t;
    225.             cout<<"Nhap diem ly:";cin>>l;
    226.             cout<<"Nhap diem hoa:";cin>>h;
    227.             ts.toan=t;ts.ly=l,ts.hoa=h;
    228.             themts(ds,ts);
    229.             break;
    230.             case 2:
    231.             inds(ds);
    232.             getchar();
    233.             break;
    234.             case 3:
    235.             cout<<"Nhap so bao danh mun xoa: ";
    236.             gets(ts.sbd);
    237.             xoats(ds,N,ts.sbd);
    238.             cout<<"Danh sach thi sinh sau khi xoa: "<<endl;
    239.             inds(ds);
    240.             getchar();
    241.             break;
    242.             case 4:
    243.             cout<<"Nhap so bao danh mun tim: ";
    244.             gets(ts.sbd);
    245.             timkiemsbd(ds,ts.sbd);
    246.             getchar();
    247.             break;
    248.             case 5:
    249.             cout<<"Nhap ho ten muon tim: ";
    250.             gets(ts.ht);
    251.             timkiemten(ds,ts.ht);
    252.             getchar();
    253.             break;
    254.             case 6:
    255.             xeptheoten(ds);
    256.             inds(ds);
    257.             getchar();
    258.             break;
    259.             case 7:
    260.             xeptheodiem(ds);
    261.             inds(ds);
    262.             getchar();
    263.             break;
    264.             case 8:
    265.             cout<<"Nhap so bao danh thi sinh muon thay doi thong tin:";
    266.             gets(ts.sbd);
    267.             hieuchinhthongtints(ds,ts.sbd,ts);
    268.             cout<<"Danh sach sau khi chinh thong tin: "<<endl;
    269.             inds(ds);
    270.             getchar();
    271.             break;
    272.             case 9:
    273.             xeptheosbd(ds);
    274.             inds(ds);
    275.             getchar();
    276.             break;
    277.             /*case 10:
    278.             int k;
    279.             char*sbd;
    280.             cout<<"Nhap so bao danh ban muon tim: ";gets(ts.sbd);
    281.             k=tknhiphan(ds,sbd,0,sots);
    282.             if(k==-1)
    283.                 cout<<"Ko tim thay "<<endl;
    284.             else
    285.                 cout<<"Tim thay "<<ts.sbd<<" tai vi tri "<<k<<endl;
    286.             getchar();
    287.             break; */
    288.             case 10:
    289.             write2file("c:\\data.data",ds,sots);
    290.             cout<<"Du lieu da duoc luu vao file. \nLuu thanh cong"<<endl;
    291.             exit(1);
    292.             break;
    293.         }
    294.     }while(1);
    295.     return 1;
    296. }

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

  1. Load file .doc lên RichtexBox trong lập trình C#?
    Gửi bởi Snow_Flake trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 07-12-2012, 02:19 AM
  2. Đọc dữ liệu tất cả các file txt trong một thư mục load lên web
    Gửi bởi latdat089 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 4
    Bài viết cuối: 05-06-2012, 02:17 PM
  3. Load file lên winform
    Gửi bởi ninomaxx trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 5
    Bài viết cuối: 23-04-2010, 01:13 PM
  4. load từ file nhị phân lên bảng băm
    Gửi bởi edogawaconan trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 04-10-2009, 10:06 PM
  5. Load file .txt lên RichtextBox với C#?
    Gửi bởi angeltrongminh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 04-05-2009, 09:51 AM

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