정보를 파일에 저장하고 해당 파일의 정보를 편집하고 새 정보를 추가하기위한 프로그램을 작성하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/704892

문제

나는 재고 데이터를 파일에 저장하기 위해 C ++ 프로그램을 만드는 곳에서해야 할 작은 프로젝트를 시작하려고합니다 (.txt가 할 것 같아요).

  • • 품목 설명 • 수량 • 도매 비용 • 소매 비용 • 재고에 추가 된 날짜

나는 할 수 있어야한다 :

• 파일에 새 레코드 추가 • 파일에 레코드 표시 • 파일의 레코드 변경

이것을 시작하기 전에 알아야 할 것이 있습니까? 훨씬 더 쉽고 효율적으로 만들 수 있습니다 ...

예를 들어, XML을 사용해야합니까?

나는 이것을하는 가장 효율적인 방법을 실제로 이해하지 못했습니다.

파일을 검색하고 괄호 나 무언가를 찾는 것을 찾으시겠습니까?

편집하다

데이터 화가 너무 크지 않아야합니다. 그것은 당신이 말할 수 있다고 생각하는 숙제입니다. 구조물의 내용을 파일의 경로에 쓰고 싶습니다. 어떻게해야합니까?

도움이 되었습니까?

해결책

많은 접근 방식이 있습니다. 이것은 숙제 나 실제 용도를위한 것입니까? 숙제를위한 것이라면 아마도 당신이 사용할 수있는 것에 대한 제한이있을 것입니다.

그렇지 않으면 일부 내장 DBM과 같은 제안을 제안합니다 sqlite. 다른 것들도 있지만 이것은 가장 강력한 솔루션이 될 것이며 가장 쉬운 구현도 가능합니다.

XML도 허용 가능하며 재사용 가능한 구현이 많이 있지만 수천 개의 레코드로 들어가면 성능을 잃을 것입니다. JSON도 마찬가지입니다. JSON 또는 XML이 더 간단한 지에도 여전히 토론 할 수 있습니다.

또 다른 가능성은 a struct 내용을 파일에 직접 작성하십시오. 레코드 크기가 일정하지 않으면 까다로워 질 것입니다. 또한 레코드 형식이 변경되면 파일을 재구성해야합니다. 그렇지 않으면이 솔루션은 신중하게 구현 된 경우 최고의 성능 측면 중 하나 일 수 있습니다.

다른 팁

우리를 깨우쳐 주시겠습니까? 왜 데이터베이스 엔진을 사용하고 싶지 않습니까?

그것이 배우기위한 것이라면 .... 해당 파일에 저장된 데이터의 예상 크기와 액세스 패턴 (얼마나 많은 사용자, 얼마나 자주 수행하는지 등)를 알려주십시오.

문제는 효율적인 검색 및 수정 코드를 만드는 것입니다.

검색의 경우 데이터 구조 및 조직에 관한 것입니다. 수정을 위해서는 파일을 메모리로 완전히 읽지 않고 파일에 대한 업데이트를 작성한 다음 파일에 완전히 다시 작성하지 않고 파일에 대한 업데이트를 작성하는 방법입니다.

이것이 실제로 사용될 프로젝트 인 경우 시간이 지남에 따라 기능을 추가 할 수있는 잠재력이있는 경우 과잉처럼 보이더라도 처음부터 데이터베이스 솔루션을 찾으십시오. 나는 전에이 길을 따라 갔다. 작은 기능이 시간이 지남에 따라 추가되고, 그것을 깨닫기 전에 데이터베이스를 구현했다. 신통치 않게. 총알을 물고 데이터베이스를 사용하십시오.

이것이 학습 운동 인 경우 저장하려는 데이터의 양에 따라 다릅니다. 작다면 가장 쉬운 일은 전체 파일을 메모리로 읽고 거기에서 작동하는 것입니다. 변경되면 전체 파일을 디스크에 다시 쓰십시오. 데이터가 너무 크면 다음으로 가장 좋은 점은 고정 된 크기의 레코드를 갖는 것입니다. 모든 데이터 (예 : 포인터, STL 컨테이너 등)가 포함 된 포드 구조물을 만듭니다. 그런 다음 전체 파일을 다시 작성할 필요없이 개별 레코드를 다시 작성할 수 있습니다. 이 중 어느 것도 작동하지 않으면 최선의 방법은 데이터베이스 솔루션입니다.

수동으로 수행하라고 주장하면 XML 대신 JSON을 제안합니다.

또한 sqlite를 고려하십시오.

이것은 완벽한 일처럼 들립니다 sqlite. 작고 빠르며 유연하며 사용하기 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top