Parsen
-
wunderbar ... ich kannns nun einlesen und ausgeben aba wie guck ich mir nun die einzelnen zeilen an und geb sie wieder aus?
-
Enno schrieb:
wunderbar ... ich kannns nun einlesen und ausgeben aba wie guck ich mir nun die einzelnen zeilen an und geb sie wieder aus?
Versetz dich mal ernsthaft in eine Person, die nicht du bist und lies dir alle deine Beiträge in diesem Thread durch. Hättest du als Fremder auch nur den geringsten Schimmer, wovon der Threadersteller faselt, was er tut, was er wissen möchte? Nein? Das geht uns genau so.
Lies dir mal durch:
http://www.c-plusplus.net/forum/200753
http://www.tty1.net/smart-questions_de.html
-
ich versuch mich mal zu erklären!
vorweg das hier hab ich grade:
#include <iostream> #include <fstream> using namespace std; int main(void) { ifstream Quelldatei; Quelldatei.open("example.html", ios_base::in); if (!Quelldatei) cerr << "Eingabe-Datei kann nicht geöffnet werden\n"; else { ofstream Zieldatei("out.txt"); if (!Zieldatei) cerr << "Ausgabe-Datei kann nicht geöffnet werden\n"; else { char c; char a[20000]; int i=0; while (Quelldatei.get(c)) { a[i]=c; i++; } for (int j=0;j<i;j++){ cout << a[j]; } } } return 0; }so nun würde ich gerne nicht alles ausgeben sondern nur 2 bestimmte zeilen
frage für mich ist nun wie kann ich überhaupt eine zeile auslesen und wie kann ich bestimmen welche er nehmen soll?
-
Ist dies das erste Mal, dass du C++ benutzt? Lass die Standardbibliothek für dich arbeiten! Besonders dies wird sehr nützlich sein:
http://www.cplusplus.com/reference/string/Eine weitere Frage ist jedoch: Brauchst du überhaupt die Zeilen? html ist schließlich kein zeilenbasiertes Format, sondern die Struktur kommt aus den Tags. Viele Anfänger denken immer, Zeilen wären etwas besonderes. Ein Zeilenumbruch ist auch nur ein Zeichen wie jedes andere.
Weiterhin ist die Unsitte recht verbreitet, erst Daten zeilenweise aus einem Stream zu lesen, die Zeile in einen anderen Stream zu packen und dann mit den Operatoren zum formatierten Lesen (http://www.cplusplus.com/reference/iostream/istream/operator>>/) die Zeile zu parsen, anstatt die Daten gleich aus dem Ursprungsstream zu parsen.
-
Ja es ist mein erstes mal

vllcht weißte das noch du hast mir gestern schon geholfen bin nun den 4tagen am c++ bbenutzen und habe leider nur das doofe JWolf a-z hier!zu dem html dokument
Inhalt von /proc/meminfo MemTotal: 3947984 kB MemFree: 2371948 kB Buffers: 60684 kB Cached: 691980 kB SwapCached: 0 kB Active: 818716 kB Inactive: 461088 kB Active(anon): 527984 kB Inactive(anon): 22416 kB Active(file): 290732 kB Inactive(file): 438672 kB Unevictable: 0 kBso ein quak steht da drin .... nun soll ich (zitat vom vorgesetzten) memtotal und memfree prasen und von einander abziehn ...
d.h. also ich muss das irgentwie einlesen und dann in die zeilen kommen um es ausgeben zu können oder?
-
WTF? Wieso schreibst du die erst in die HTML-Datei um danach die Daten wieder auszulesen? Ist das eine Arbeitsbeschaffungsmaßnahme? Die Aufgabe ist mir ehrlich gesagt zu dumm, um dir da motiviert zu helfen. Das macht einfach keinen Sinn.
-
nein ist ein praktikum
hab mich hier auf eine ausbildung beworben und die meinten ich soll mal 1 woche ausprobieren
naja egal ...
d.h. ich kann das auch einfach direkt aus /proc/meminfo auslesen? wenn ja mach das lieber
-
ich hab ein ich vergessen ...
mach ICH das lieber!
-
Ich rate mal: Die Gesamtaufgabe ist, die Daten aus den Dateien zu lesen, ein paar Rechnungen damit anzustellen und das Ergebnis in Form einer HTML-Datei zu repräsentieren? Das würde nämlich halbwegs sinnvoll sein. Und auch wesentlich einfacher.
-
ja richtig
tut mir leid das ich mich nicht vernünftig ausdrücken kann
-
#include <iostream> #include <fstream> #include <string> int main() { using namespace std; long mem_total = -1; long mem_free = -1; ifstream datei("/proc/meminfo"); for( std::string wort; (mem_total < 0 || mem_free < 0) && datei >> wort ; ) { if( wort == "MemTotal:" ) datei >> mem_total; else if( wort == "MemFree:" ) datei >> mem_free; } if( datei ) cout << "Ergebnis: " << (mem_total-mem_free) << " = (total)" << mem_total << " - (free)" << mem_free << endl; else cerr << "Fehler beim Lesen/Parsen" << endl; return 0; }Ausgabe:
Ergebnis: 1576036 = (total)3947984 - (free)2371948
-
ok nun hab ich das verstanden und eingebaut
nun sagt er ich soll das ganz in meinem html dokument als DIV speicher???
MT = wert von memtotal
MF = wert von memfreedabei soll ich 150% / MT = PWrechnen und MF / PW
das soll dann ein div ergebn was 150 pixel lang ist
meine frage nun:
muss ich das mit der richtgen html snytax einfach in die datei schreiben???danke schonmal für das geduldige helfen
-
Könntest du bitte versuchen, auf Deutsch zu schreiben?
-
ich kann nicht besser erklären was ich machen soll
ich kann vllcht noch dazu sagen das doch ein DIV so ein block in html ist
Mit <div> leiten Sie ein allgemeines Block-Element ein, in das Sie mehrere andere Block-Elemente einschließen können (div = division = Bereich). Alles, was zwischen diesem Tag und dem abschließenden </div> steht, wird als Teil des Bereichs interpretiert.
-
Kellerautomat schrieb:
Könntest du bitte versuchen, auf Deutsch zu schreiben?
Ich übersetze:
*Ok, nun habe ich das Verstanden und Eingebaut.
Nun sagt er, ich soll das ganze in meinem HTML-Dokument als DIV speichern?MT = wert von memtotal
MF = wert von memfreeDabei soll ich
150% / MT = PWundMF / PWausrechnen.Das soll dann einen DIV ergeben, welches 150 Pixel lang ist.
Meine Frage ist nun:
Muss ich das mit der richtigen HTML Syntax einfach in die Datei schreiben?Danke schon mal für das geduldige Helfen!*
Antwort:
DIV ist ein HTML-Tag, genauer genommen ist es ein DHTML-Layer. Lern am besten (X)HTML und CSS

Die Breite wird im CSS-Stylesheet selbstverständlich durch ein Attribut mit numerischem Wert bestimmt (den numerischen Wert mit px-Suffix schreiben).
Edit: Am besten einfach ins <style> Tag im head einbauen.
-
Ich gehe mal auf die Meta-Ebene der Hilfestellung: Es wäre vielleicht eine gute Idee, wenn du deinem Chef sagst, dass du mit der Aufgabe überfordert bist und er es vielleicht mal etwas langsamer angehen sollte. Du sprichst seit wenigen Tagen C++, gelernt aus einem bekannt schlechten Buch. Das ist kein Wunder, wenn diese Aufgabe zu schwer ist.
-
vom prinzip müsste das doch irgentwie so gehen:
std::string HTML_File::to_string(){ std::string out = "<!DOCTYPE html>\n<html><body>" + data + "</body></html>\n"; return out;so müsste ich doch auch ein div in die html als string rein schreiben können oder?
-
seppj ich hab das buch nicht mehr angefast seit dem ihr das sagtet
-
Enno schrieb:
so müsste ich doch auch ein div in die html als string rein schreiben können oder?
Ja.
-
problem is nur wenn ich das hier schreibe
<div align="center">dann kommt c++ da ein wenig durcheinander kann man das irgentwie lösen?