Avatar billede quiw Nybegynder
02. februar 2007 - 10:52 Der er 15 kommentarer og
1 løsning

Læs HEL fil!

Hejsa eksperter, dette er et relativt let spørgsmål. Jeg har en .htm fil, og jeg vil gerne have læst HELE filen ind i 1 char variabel.
Avatar billede yates Nybegynder
02. februar 2007 - 11:14 #1
1. Find størrelsen i bytes (X).
2. char* Foo= (char*) malloc(X+1);
3. fread(Foo, X, F), hvor F er dine filpointer

Nu har du hele klamamsen i Foo. Husk free til sidst når du er færdig med Foo.

Y.
Avatar billede quiw Nybegynder
02. februar 2007 - 11:44 #2
Fik jeg nævnt at jeg ikke er så hård til C++? :) Kan jeg ikke få et eksempel?
Avatar billede yates Nybegynder
02. februar 2007 - 12:46 #3
Avatar billede bertelbrander Novice
02. februar 2007 - 20:55 #4
#include <iostream>
#include <fstream>

int main(int argc, char* argv[])
{
  std::ifstream File(argv[1], std::ios::binary);
  if(!File)
  {
      std::cout << "Failed to open your file" << std::endl;
      return 1;
  }
  File.seekg(0, std::ios_base::end);
  unsigned int Size = File.tellg();
  File.seekg(0, std::ios_base::beg);
  char* data = new char [Size];
  File.read(data, Size);
  data[Size] = 0;
  std::cout << "I have read: " << std::endl << data << std::endl;
  delete [] data;
}
Avatar billede arne_v Ekspert
03. februar 2007 - 03:33 #5
char* data = new char [Size+1];

tror jeg
Avatar billede bertelbrander Novice
03. februar 2007 - 13:13 #6
Ja, bestemt.
Avatar billede quiw Nybegynder
04. februar 2007 - 13:10 #7
Altså, Bertelbranders eksempel virker, men der var vist noget jeg ikke havde forudset, er der en begræsning på hvor meget man må sende per gang? Mit program sender heeeele html filen i 1 hug, altså:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ny side 1</title>
</head>

<body>

<p><img border="0" src="../0008_IMGP1827.JPG" width="640" height="480"></p>

</body>

</html>

- Men af en sær grund stopper den ved "height="480">" og får ikke sendt resten med.
Avatar billede quiw Nybegynder
04. februar 2007 - 13:22 #8
Jeg må vel lige for en god ordens skyld nævne at indholdet af variablen fungere fint, men den for det bare ikke sendt ordenligt afsted.
Avatar billede arne_v Ekspert
04. februar 2007 - 16:05 #9
hvordan sender du ?
Avatar billede quiw Nybegynder
04. februar 2007 - 20:26 #10
Altså jeg har jo:
streng data;
også forsøgte jeg med:
send(sd2,data, sizeof(data),0);

Derefter forsøgte jeg at lave et char array som hed:
char test[1000];

Og smide indholdet af data ind i test, det virker fint nok hvis jeg printer test, så for jeg html koden .. Men så snart den bliver sendt afsted i send så smider den halvdelen ud ..
Avatar billede arne_v Ekspert
04. februar 2007 - 20:28 #11
streng data;

hvad er streng ?

send(sd2,data, sizeof(data),0);

ser suspekt ud, normalt vil man skrive et faktisk antal bytes og ikke størrelsen
på en buffer
Avatar billede arne_v Ekspert
25. marts 2007 - 16:09 #12
quiw ?
Avatar billede quiw Nybegynder
27. marts 2007 - 23:55 #13
Jeps, jeg var på ferie for noget tid siden og da jeg kom hjem havde jeg glemt alt om det :)
- Men har egentlig smidt projektet ud .. Men jeg har noteret mig det i har postet og det hjalp til et andet problem :) Smid endelig et svar ..
Avatar billede arne_v Ekspert
06. maj 2007 - 22:45 #14
det må vist være yates !
Avatar billede quiw Nybegynder
04. juni 2008 - 10:05 #15
Kan se at jeg har haft denne topic åben længe, og skylder vist nogle point, smid venligst et svar ..
Avatar billede quiw Nybegynder
21. november 2008 - 16:13 #16
Topic har stået åben alt for længe nu, skriv hvis nogle protesterer :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester