Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 690
  • Last Modified:

Store a text file in memory - C++

I need to store a text file in memory as a backup and later delete it from the memory or write it to the disk as required. Which is the best way to temporarily store it in memory?
0
sukhoi35
Asked:
sukhoi35
2 Solutions
 
vinaypatkiCommented:
Create a buffer in memory alloted to your application. Use that buffer as a storage of text/data that you will be writing to actual file. Use sprintf/memcopy for IO on buffer similar to writefile for files.
0
 
guveraCommented:
Create a txt file with the information in correct columns, as if you don't the information won't be right. This code should help.

ifstream inputFile;
ofstream outputFile;
inputFile.open("payInput.txt");
outputFile.open("outputFile.txt");

if(inputFile.fail())
cout << "Error opening inputfile!\n";
else if(outputFile.fail())
cout << "Error opening outputfile!\n";
else
{
outputColHeadings(outputFile);
readFileValues(inputFile, empIDArray, rateArray, hoursArray, dependArray);
then do calculations....
------FUNCTIONS--------------
void outputColHeadings(ofstream& outputFile)
{
outputFile <<" EmpId" << setw(10) <<"Rate"<< setw(9) <<"Hours" << setw(6)
<<"Dep" << setw(12) <<"Gross Pay" << setw(11) << "Fed. Tax"
<< setw(12) <<"State Tax" << setw(12) <<"Net Pay\n";
for (int i = 1; i <= 78; i++)
outputFile << "=";
outputFile << "\n";

return;
}//outputColHeadings
void readFileValues(ifstream& inputFile, long empID1Array[],
double rate1Array[], double hours1Array[],
int depend1Array[])
{
int i;

for(i=0; i < SIZE; i++)
inputFile >> empID1Array[i] >> rate1Array[i] >> hours1Array[i]
>> depend1Array[i];
return;
}//readFileValues

Hope this one help!
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
evilrixSenior Software Engineer (Avast)Commented:
You can either store each line as a separate string using a vector of strings or store the whole file as one vector of chars. You can also use a stringstream to create an in-memory stream.http://www.cplusplus.com/reference/stl/vector/http://www.cplusplus.com/reference/iostream/stringstream/
#include <vector>
#include <string>
#include <fstream>
#include <sstream>

int main()
{
   std::vector<std::string> vector_of_strings;
   std::vector<char> vector_of_chars;
   std::stringstream memory_stream;

   std::fstream in("myfile.txt");

   std::string line;

   while(getline(in, line))
   {
      // save each line as a collection of lines
      vector_of_strings.push_back(line);

      // append each line to a buffer of chars
      std::copy(line.begin(), line.end(), std::back_inserter(vector_of_chars));

      // append each line to the in-memory stream
      memory_stream << line;
   }
}

Open in new window

0
 
guveraCommented:
Hi

 Did u check the code?  Is anything wrong to execute the code?
0
 
sukhoi35Author Commented:
Thanks!
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now