Trang Chủ Tài chính Cá nhân C Lập trình: Làm thế nào để truy cập các tập tin lưu trữ trong lưu trữ ngẫu nhiên - núm vú

C Lập trình: Làm thế nào để truy cập các tập tin lưu trữ trong lưu trữ ngẫu nhiên - núm vú

Mục lục:

Video: Nâng Cấp Ram Và Ổ cứng SSD Có Giúp Máy Tính Làm Đồ Hoạ Và Games Nhanh Hơn Không ? 2025

Video: Nâng Cấp Ram Và Ổ cứng SSD Có Giúp Máy Tính Làm Đồ Hoạ Và Games Nhanh Hơn Không ? 2025
Anonim

Truy cập tệp ngẫu nhiên trong lập trình C không liên quan đến số ngẫu nhiên. Thay vào đó, tập tin có thể được truy cập ở bất kỳ điểm nào ở đây, ở đó, và thậm chí cả yon. Loại truy cập này hoạt động tốt nhất khi tệp được đánh dấu bằng các bản ghi có cùng kích thước. Khái niệm hồ sơ mang lại các cấu trúc, có thể dễ dàng được ghi vào một tập tin và sau đó được lấy ra trở lại cá nhân, chọn lọc, hoặc tất cả cùng một lúc.

Cách đọc và tua lại

Khi bạn mở một tệp tin đầu tiên, vị trí con trỏ ở đầu tập tin, byte đầu tiên. Nếu bạn đọc một bản ghi 40 byte vào bộ nhớ, vị trí con trỏ là 40 byte ngay từ đầu. Nếu bạn đọc cho đến khi kết thúc tệp, vị trí con trỏ duy trì vị trí đó là tốt.

Vòng lặp while trong Tell and Rewind đọc trong hồ sơ từ trái phiếu. tập tin db. Tại dòng 28, hàm ftell () trả về vị trí con trỏ. Nếu nó lớn hơn một mục nhập (có nghĩa là mục nhập thứ hai đã được đọc), vị trí con trỏ được đặt lại vào đầu tập tin bằng chức năng rewind () ở dòng 29.

TELL AND REWIND

#include # bao gồm # include int main () {struct entry {char actor [32]; năm int; tên char [32];}; struct trái phiếu đầu vào; FILE * a007; int đếm = 0; a007 = fopen ("bond. db", "r"); if (a007) {puts ("SPECTER wins!"); exit (1);} while (fread (& bond, sizeof (struct entry), 1, a007)) {printf ("% st% dt% sn", trái phiếu, diễn viên, trái phiếu năm, trái phiếu. if (ftell (a007)> sizeof (struct entry)) tua lại (a007); đếm ++; if (count> 10) break;} fclose (a007); return (0);}

Để xác định đúng sự bù đắp, một câu lệnh if so sánh kết quả từ hàm ftell () và toán tử sizeof trên mục cấu trúc. Hãy lưu ý rằng ftell () chỉ trả về một giá trị int dài, không phải là một số lượng cụ thể của cấu trúc.

Số biến, khai báo và khởi tạo tại Dòng 14, theo dõi bao nhiêu lần vòng lặp while lặp lại. Nếu không, chương trình sẽ lặp lại vô tận. Thật tồi tệ. Vì vậy, khi giá trị đếm lớn hơn 10, vòng lặp phá vỡ và sau đó tệp đóng lại và chương trình kết thúc.

Bài tập

1

: Nhập mã nguồn từ Tell and Rewind vào trình soạn thảo của bạn. Xây dựng và chạy để xem các chức năng ftell () và rewind () hoạt động như thế nào. Cách tìm một bản ghi cụ thể Khi một tệp có chứa tất cả các bản ghi có cùng kích thước, bạn có thể sử dụng hàm fseek () để gỡ bỏ bất kỳ mục riêng lẻ nào. Định dạng cho fseek () là

fseek (handle, offset, whence);

xử lý

là một tập tin xử lý, một con trỏ FILE đại diện cho một tập tin đó là mở để đọc.

offset là số byte từ vị trí bắt đầu, kết thúc, hoặc hiện tại trong một tệp tin. Và từ đó là một trong ba hằng số: SEEK_SET, SEEK_CUR hoặc SEEK_END để bắt đầu, vị trí hiện tại hoặc kết thúc của tệp. Miễn là tệp tin của bạn chứa các bản ghi có kích thước không đổi, bạn có thể sử dụng fseek () để gom bất kỳ bản ghi cụ thể nào, như thể hiện trong Tìm một Bản ghi cụ thể trong một Tệp. Tìm một bản ghi đặc biệt trong một tệp

#include #include #include int main () {struct entry {char actor [32]; năm int; tên char [32];}; struct trái phiếu đầu vào; FILE * a007; a007 = fopen ("bond. db", "r"); if (a007) {puts ("SPECTER wins!"); exit (1);} fseek (a007, sizeof (struct entry) * 1, SEEK_SET); fread (& bond, sizeof (struct entry), 1, a007); printf ("% st% dt% sn", trái phiếu, diễn viên, trái phiếu năm, trái phiếu. title); fclose (a007); return (0);}

Mã được hiển thị trong Tìm một bản ghi cụ thể trong một tệp lại khá giống với mã được hiển thị trong Liệt kê 22-9. Bổ sung lớn là hàm fseek (), được hiển thị ở dòng 21. Nó đặt vị trí con trỏ để chức năng fread () theo sau (tham khảo dòng 22) đọc trong một bản ghi cụ thể nằm bên trong cơ sở dữ liệu.

Tại dòng 21, hàm fseek () kiểm tra tệp tin được trình bày bằng cách xử lý a007. Việc bù đắp được tính bằng cách nhân kích thước của cấu trúc nhập cảnh.

Giống như một mảng, nhân với kích thước đó 1 sẽ tạo ra hồ sơ

thứ hai; nhân giá trị bằng 0 (hoặc chỉ xác định 0 trong hàm) để đọc bản ghi đầu tiên. Hằng số SEEK_SET đảm bảo rằng fseek () bắt đầu nhìn từ đầu tập tin.

Các hiệu ứng ròng của mã là hồ sơ thứ hai trong trái phiếu. tập tin db được hiển thị. Bài tập 2: Nhập mã nguồn từ Tìm một bản ghi cụ thể trong một tệp. Xây dựng và chạy để xem hồ sơ thứ hai.

C Lập trình: Làm thế nào để truy cập các tập tin lưu trữ trong lưu trữ ngẫu nhiên - núm vú

Lựa chọn của người biên tập

Cách chuyển đổi điện áp Hiện tại Bật và Tắt - núm vú

Cách chuyển đổi điện áp Hiện tại Bật và Tắt - núm vú

Chuyển mạch là chức năng quan trọng nhất trong thiết bị điện tử. Hãy nghĩ đến bộ TV của bạn: Bạn bật và tắt nguồn, chọn nguồn tín hiệu từ các lựa chọn đầu vào khác nhau (như đầu DVD, hộp cáp hoặc hệ thống chơi game) và thay đổi kênh truyền hình. Màn hình TV của bạn bao gồm hàng triệu điểm ảnh nhỏ (hình ảnh ...

Làm thế nào để Solder một Solid Joint trong Dự án Điện tử của bạn - núm vú

Làm thế nào để Solder một Solid Joint trong Dự án Điện tử của bạn - núm vú

Làm thế nào để Solder một Solid Joint trong dự án Điện tử của bạn < hình thức hàn phổ biến nhất khi tạo ra các dự án điện tử là thành phần hàn dẫn đến miếng đồng ở mặt sau của một bảng mạch in. Nếu bạn có thể làm điều đó, bạn sẽ không có vấn đề với các loại hàn khác, chẳng hạn như hàn hai dây với nhau hoặc hàn một dây vào một thiết bị đầu cuối chuyển đổi. Sau đây ...

ÁNh sáng-O-Rama Sequences được sử dụng trong chiếu sáng - đầu

ÁNh sáng-O-Rama Sequences được sử dụng trong chiếu sáng - đầu

Ở Light-O-Rama , một dãy được biểu diễn dưới dạng một lưới tương tự như lưới trong một chương trình bảng tính. Ví dụ, hình ảnh cho thấy một phần của một chuỗi rất đơn giản, trong đó đèn trên các kênh 1, 3 và 5 luân phiên bật và tắt mỗi nửa giây. Mỗi hàng trong lưới đại diện cho một ...

Lựa chọn của người biên tập

Làm thế nào để Tạo một trang Blog trong SharePoint - núm vú

Làm thế nào để Tạo một trang Blog trong SharePoint - núm vú

Để Tạo một blog trong SharePoint, bạn tạo ra một trang web mới hoặc địa điểm phụ. Dành thời gian để xem xét nơi blog này sẽ nằm trong thứ bậc trang web của bạn. Mặc dù bạn có thể thay đổi quyền ở bất kỳ mức nào, bạn vẫn có thể có blog tổng thống của bạn trên trang chính của SharePoint Intranet của bạn (và ...

Làm thế nào để tạo một ứng dụng tùy chỉnh trong SharePoint 2013 - núm vú

Làm thế nào để tạo một ứng dụng tùy chỉnh trong SharePoint 2013 - núm vú

Bạn tạo một ứng dụng tùy chỉnh sử dụng Custom Liệt kê ứng dụng. Ứng dụng Danh sách tùy chỉnh tạo ra một ứng dụng danh sách rất cơ bản mà sau đó bạn có thể tuỳ chỉnh cho kịch bản cụ thể của mình. Thực hiện theo các bước sau để tạo một ứng dụng tùy chỉnh: Nhấp vào biểu tượng bánh răng Cài đặt và chọn Thêm một ứng dụng. Trang Ứng dụng của bạn được hiển thị. Nhấp vào ...

Làm thế nào để Tạo một Thảo luận Ban App trong SharePoint - núm vú

Làm thế nào để Tạo một Thảo luận Ban App trong SharePoint - núm vú

Thêm một ứng dụng thảo luận trên SharePoint một quá trình rất đơn giản. Bạn chỉ cần chọn ứng dụng Thảo luận từ trang Apps You Can Add. Bạn có thể thêm nhiều bảng thảo luận vào trang web của mình như bạn muốn. Bạn có thể thấy nó mang lại lợi ích cho việc tạo ra một bảng thảo luận cho mỗi khu chức năng để giữ ...

Lựa chọn của người biên tập

Máy tính giả mạo dành cho Android hoặc Điều gì đặc biệt về Số 5554? - núm vú

Máy tính giả mạo dành cho Android hoặc Điều gì đặc biệt về Số 5554? - núm vú

Khi bạn khởi động trình mô phỏng thiết bị Android, tên của trình mô phỏng mới là cái gì đó giống như trình mô phỏng-5554 hoặc trình mô phỏng-5556. Tên bắt nguồn từ thực tế là mỗi lần chạy của trình mô phỏng Android sử dụng hai số cổng (hai kênh để giao tiếp với máy tính phát triển). Như bạn đã biết, trình duyệt web của bạn thường sử dụng số cổng 80 ...

Kích hoạt Chế độ xem trên Ứng dụng iOS của bạn - núm vú

Kích hoạt Chế độ xem trên Ứng dụng iOS của bạn - núm vú

Bất cứ khi nào bạn chỉ định một giá trị mới cho chế độ xem nhất định tài sản (như khung và thuộc tính của trung tâm), chế độ xem sẽ được vẽ lại ngay lập tức và thay đổi hiển thị ngay lập tức trên màn hình. Ngoài ra, thay đổi đối với một số thuộc tính xem (chẳng hạn như các thuộc tính được đề cập) có thể được hoạt hình. Điều này có nghĩa là việc thay đổi thuộc tính sẽ tạo ra hình ảnh động ...

Android: Sử dụng IDE Eclipse cho Phát triển Java - núm vú

Android: Sử dụng IDE Eclipse cho Phát triển Java - núm vú

Ngày nay, sử dụng một môi trường phát triển tích hợp (IDE) để phát triển Java dễ dàng hơn. IDE được chấp nhận rộng rãi nhất trong số các nhà phát triển Java là Eclipse. Bảng này cung cấp cho bạn các mẹo nhanh để sử dụng IDE Eclipse để phát triển các ứng dụng Android. Nhiệm vụ Làm thế nào để hoàn thành Bắt đầu một dự án mới của Android Từ màn hình Dự án mới, dưới Android ...