Visual C++ Speichern

  • #1
D

Don_Pazo

Bekanntes Mitglied
Themenersteller
Dabei seit
16.09.2005
Beiträge
112
Reaktionspunkte
0
Hallo,
ich habe eine Programm mit MFC (Visual C++ 6) erstellt. Es ist SDI, und es ist auf die Klasse (class CE_LearnView : public CHtmlView) basiert. Das Programm ist etwas enliches wie Internet Explorer nur das man in einene bestimten Link ferschiedene Optionen wählen kann, z.B. http://www.server/bla/ble/OPTIONEN
Mann wählt die gewühnschte Option und drückt OK. Es wird das Ergebnis gezeigt wie HTML, (weil die class CE_LearnView : public CHtmlView ).

Ich wersuche es seit lange aber leder gelingt es mir nicht die HTML Ergebniss als *.csv Datei zu speichern.

Bitte, weist jemend wie ich HTML seite von  class CE_LearnView : public CHtmlView  als *.csv speichern kann?
 
  • #2
Hallo,

mich würde erstmal interessieren, WARUM du eine HTML-Seite als .csv speichern willst?
Bei Excel oder so würde ich das ja noch verstehen, aber eine HTML-Seite?
Für was soll das gut sein?

Gruss

Reiner
 
  • #3
Ich brauche es, weil auf dem Server sind mehrere Tabelen. Die ich mit dem Programmchen,  mit Hilfe verschiedene ComboBox Optionen , anzeige.
Die Tabelen kann ich aber nur als HTTP zeigen.
Daraus volgt das ich die in *.csv oder Exel umwandeln soll damit man arbeiten kann.

Ich hoffe das jeimand einen Rat hat, ich bin nemmlich schon hilfslos !!!
 
  • #4
Hallo,

wenn ich das jetzt richtig verstanden habe, befinden sich auf den Webseiten, die du anzeigst HTML-Tabellen und du willst den Inhalt dieser Tabellen auslesen und in einer .csv-Datei speichern!

Ist das so richtig?

Wenn ja, kannst du dafür das ActiveX-Control des Internet-Explorer in der SHDOCVW.DLL benutzen, und so auf das Browser-Dokument zugreifen.
So ganz einfach ist das allerdings nicht!

Gruss

Reiner
 
  • #5
Das Programm, das ich habe, fuktioniert voldendermassen:

1. Das Programm ist mit Visual C++ (MFC) erstelt worden.

2. Es ist SDI Anwendung, und es ist keinen TextEditor (CTextView) sondern
HTML (CHatmlView)

3. Wenn man auf verbindung... klickt, zeigt sich einen Dialogfenster in dem
man:

|Server| |................|
|Benutzername| |................|
|Passwort| |................|
Statistik| |................|

eingeben kann.

4. Beim OK klicken, bildet die Wariable LINK ungefähr so was:
LINK = http:// + m_strServer +//FCB.HaHa// + ........;

5. Dann wirt die vorhandene Information als Html-Seite auf meinen Programm
gezeigt.


Problemmen:

1: Ich möchte das die Information nach dem in dem Programm als HTML
gezeigt wurde, als *.csv Datei speichern.

Wie ich an den HTML-Code rankomme?
Wie ich die Daten aus HTML raushole?
Wie ich eine CSV-Datei erstelle?


Bitte, kann mir jemand Rat geben wie ich das lösen kann ?
 
  • #6
Wie ich an den HTML-Code rankomme?

CHtmlView::GetSource?
EDIT: Ups...  Visual C++ 6. Ok, auf GetSource wärst du auch selbst gekommen :D.
Da musst du wohl IHTMLDocument etc. verwenden. Ich melde mich später noch mit Code.
EDIT2:
Ok, ich habe das hier zusammengebastelt; es sollte für deine Zwecke das Richtige sein:
Code:
BOOL CDeineHtmlView::GetHTMLSource(CString& body)
{
  BOOL ok= FALSE;
  HRESULT hr;
  	
  LPDISPATCH pDispatch= NULL;
  pDispatch= GetHtmlDocument();
  if(pDispatch != NULL)
  {
    IHTMLDocument2* pHtmlDocument = NULL;
    hr= pDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&pHtmlDocument);		
    if(SUCCEEDED(hr) && (pHtmlDocument != NULL))
    {
      IHTMLElement* pBody= NULL;
      hr= pHtmlDocument->get_body(&pBody);
      if(SUCCEEDED(hr) && (pBody != NULL))
      {
        BSTR bsHtmlSource;
        hr= pBody->get_outerHTML(&bsHtmlSource);
        pBody->Release();
        if(SUCCEEDED(hr))
        {					
          body= bsHtmlSource;
          SysFreeString(bsHtmlSource);
          ok= TRUE;				
        }
      }
      pHtmlDocument->Release();
    }
    pDispatch->Release();
  }
  return ok;
}

(#include <mshtml.h> nicht vergessen)

Wie ich die Daten aus HTML raushole?

Hmm ... den HTML-Code durchsuchen? Du kennst den Aufbau ja. Es geht auch aufwendiger (siehe Reiner; in einer CHtmlView ist das Browser-Objekt zugänglich; man kann sich ein Dokumenten-Interface holen, die IHTMLElementCollection(s) zerpflücken etc., aber das ist recht aufwendig).
Vielleicht tun es in diesem Fall ein paar Stringoperationen?

Wie ich eine CSV-Datei erstelle?

Z.B. alles in einem String zusammenbauen (oder die einzelnen Zeilen in einer CStringList o.ä. ablegen) und dann per CFile in eine Datei schreiben.
 
Thema:

Visual C++ Speichern

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.837
Beiträge
707.958
Mitglieder
51.490
Neuestes Mitglied
Tompom333
Oben