Zum Inhalt springen

kingofbrain

Mitglieder
  • Gesamte Inhalte

    2.093
  • Benutzer seit

  • Letzter Besuch

Beiträge von kingofbrain

  1. Hallo Guy,

    kannst Du mir bitte erklären, was dieses DMS ist? Bis jetzt habe ich nur verstanden, dass Du eine Software beschreiben sollst, die Webseiten offline speichert.

    Ich habe so eine Sofware noch nicht erstellt, denke aber, das man dazu die Dateien vom Server in der gleichen Verzeichnistruktur speichert, wie sie auf dem Server liegen. Dann muss überprüft werden, ob die Links im Quelltext absolut oder relativ sind. Die lokalen Links sollten dann entsprechend abgeändert werden (relativ ==> keine Änderung nötig, da selbes VerzeichnisSystem).

    Oder die Dateien werden nach Links durchsucht, und die gelinkten Dateien ebenso, usw. bis in die angegebene Ebene (Filter können ja eingebaut werden, damit man z.B. nur Seiten bekommt, die zur selben Domain gehören. Die entsprechenden Dateien werden wieder abgespeichert und die Links angepasst.

    Sollte ich das ganze jetzt falsch oder unvollständig verstanden haben, müsstest Du Deine Fragen bitte nochmal formulieren.

    k.o.b

  2. Sorry, hab grad noch was gesehen:

    Wenn Du mit Wordpad arbeitest, wird das Dokument meines Wissens nicht im richtigen Zeichenformat gespeichert. Wenn schon Windows-BS-Zusatzsoftware, dann Notepad, speichern unter .htm oder .html

    k.o.b

  3. hallo Sven,

    meiner Ansicht nach der beste Editor für lau ist die Freeware Phase5 von U. Meybohm.

    Wenn Du mal auf seine Seite gehst, kannst Du ihn downloaden.

    Anschauen kannst Du die Seiten, indem Du einfach als .htm oder .html abspeicherst. Der IE sollte dann automatisch die Datei annehmen. Ansonsten im Explorer Rechtsklick auf die Datei -> Öffnen mit... -> Internet Explorer.

    Ich hoffe, das wars, was Du wissen wolltest.

    k.o.b

  4. So genau habe ich es mir nicht angesehen. Aber nachdem sowohl die Online-Doku als auch das Buch vom selben Autor sind, denke ich, die beiden sind sehr ähnlich.

    Am besten gehst Du mal in einen Buchladen und schaust Dir die Bücher mal an, dann bekommst Du einen guten Eindruck davon.

    k.o.b

  5. Hallo Magoo,

    ich habe das Buch von Stefan Münz zwar nicht zuhause (ich hab sein Kompendium am Bildschirm gelesen ;-)), aber ich hab es mir einmal im Laden angesehen.

    Es ist halt einfach das deutsche Standardwerk, und ich denke, es lohnt sich, den Preis zu bezahlen.

    k.o.b

  6. Wenn Du Dich mit HTML schon auskennst, sollte das ja kein schweres Thema sein. Ein bisschen die Funktionsweise erklären und ein paar Tags vorführen.

    Solltest Du Dich noch nicht damit beschäftigt haben, empfehle ich Dir Selfhtml.

    Dort ist das Thema anhand vieler Beispiele gut erklärt und Du erfährst einiges zum Thema.

    k.o.b

  7. Hallo zusammen!!!

    Ich arbeite gerade mit Visual C++ 6.0 an einer Anwendung mit ODBC-Anbindung (Access 2000).

    Ich habe beim Erstellen mit dem Anwendungsassistenten alle Tabellen der DB angegeben. Wenn ich

    jetzt aber mit Open() das Recordset so umbiegen will, das ich nur die Daten einer Tabelle bekomme,

    schreibt die Anwendung diese Daten in die ersten Variablen, die in DoFieldExchange(...) angegeben

    sind, und nicht in die korrekten Variablen der Tabelle.

    Danach habe ich es mit m_pDatabase->ExecuteSQL("SELECT * FROM interpret") versucht, aber die

    Methode ExecuteSQL liefert scheinbar keine Daten.

    Weiss einer von Euch, wie ich das hinbekommen könnte?

    hier noch ein kleiner Code-Ausschnitt:

    
    void CMP3VerwaltungView::fillCboInterpret(void)
    
    {
    
       // einlesen der Interpretentabelle in das Recordset
    
       m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE, "SELECT * FROM haupt", 0);
    
       //m_pSet->Requery();
    
    
       // füllen des Interpreten-Combofeldes
    
       if(!m_pSet->IsEOF())
    
       {
    
          m_pSet->MoveFirst();
    
       }
    
    
       while(!m_pSet->IsEOF())
    
       {
    
          m_cInterpretB.AddString(m_pSet->m_Album);
    
    
          m_pSet->MoveNext();
    
       }
    
    }
    
    

    Schönen Feiertag noch, k.o.b

  8. Sorry kleiner Nachtrag,

    wenn Du die Daten verschicken möchtest, ohne dass der User sein Programm bemüht, muss der Server die Daten verarbeiten. Und das geht nur, wie mein Kollege erwähnte, über Scriptsprachen.

    Ausserdem muss der Server das unterstützen.

    Wenn Du diese Sprachen nicht lernen willst, oder noch nicht kannst, oder warum auch immer, dann kannst Du es nur über vorgefertigte Dienste lösen.

    Mahlzeit,

    k.o.b

  9. Hallo Woodstock,

    Du könntest ja einfach einen kostenlosen Dienst nutzen (z.B. www.formmailer.de ), der die Daten aus Deinem Formular an die angegebene email-Adresse schickt.

    So hab ich es auf meiner Homepage gelöst. Dann musst Du das Rad nicht nochmal erfinden.

    k.o.b

  10. Hallo Guy,

    also bei win2000 ist es so (zumindest bei mir):

    unter "C:\Dokumente und Einstellungen\USER\Lokale Einstellungen\Temporary Internet Files" werden alle Dateien abgespeichert, die der Rechner lokal benötigt.

    Ich habe es gerade mit einem Applet probiert, und das liegt auch da drin, allerdings als .jar-Datei. Wenn ich diese mit WinZip öffne, kann ich die .class-Dateien sehen und speichern.

    Das sollte es eigentlich sein.

    k.o.b

  11. Hallo nochmal!!

    ich habe zwar hier die Version 5 von Homesite, aber ich vermute, Deine funktioniert ähnlich.

    Das mit dem Code-Inspektor habe ich gerade ausprobiert. Es geht so:

    • Du markierst das Tag, bei dem Du den Event abfangen willst und drückst F4 (oder Menü -> Tags -> Inspect Current Tag). Du kannst aber genauso auf der linken Seite (standardmässig Exploreransicht) unten bei den Registerkarten bis zum Code-Inspector gehen.
    • Jetzt siehst Du auf der linken Fensterseite das aktuelle Tag mit den verschiedenen Konfigurationsmöglichkeiten, unter anderem auch die Events.
    • Du wählst ein Event aus und suchst Dir aus der ComboBox aus, welches Script Du haben möchtest.
    • Jetzt wird im Code die Funktion eingefügt. Diese kannst Du manuell bearbeiten, oder in der QuickBar (normalerweise rechts über dem Code) unter "Scripts" eine Möglichkeit wählen.

    So, ich hoffe, das war es, das Du wissen wolltest. Wenn nicht, dann kannst Du Dich ja nochmal melden. Ich probiers gern nochmal.

    Ansonsten noch einen schönen Abend (ich geh jetzt in die Sonne!!!)

    k.o.b

  12. Servus Rubicon,

    meines Wissens gibt es kein vernünftiges Tutorial für Homesite, schon gar nicht auf deutsch.

    Ich finde allerdings, es ist ziemlich intuitiv zu bedienen.

    Hast du eine konkrete Frage? Vielleicht kann ich Dir helfen...

    k.o.b

  13. Hallo tazka,

    dass Du die Sache mit Deinem Chef abklären musst, ist richtig. Dieser muss einfach und formlos seine Zustimmung geben (aber immer schriftlich geben lassen), und dann könnt Ihr loslegen.

    Wie das mit der Gewerbeanmeldung ist, kann ich Dir leider nicht sagen, ich weiss nur, dass man als Freiberufler nicht unbedingt ein Gewerbe braucht. Da solltet Ihr Euch aber von professioneller Seite (Ämter, private Unternehmensberater) beraten lassen. Diese Kohle sollte man ausgeben!

    Ihr solltet Euch auf jeden Fall Gedanken über die Gesellschaftsform machen, wie Ihr die Kompetenzen verteilt, usw. Auch dieses am besten schriftlich, dann gibts nachher keinen Streit (hoffentlich).

    Ich wünsche Euch auf jede Fall alles Gute für Euer Geschäft. Was wollt Ihr denn so machen?

    k.o.b

  14. Hallo zusammen!!!

    Ich war vor drei Jahren beim Bund, und kann nur sagen, es wird viel Müll über den Dienst erzählt.

    Wenn man sich einigermassen interessiert gibt, bekommt man auch sinnvolle und interessante Aufgaben.

    Wer also keine Probleme mit seiner Moral hat (Stichwort Waffen), kann es duchaus mal ausprobieren.

    Ansonsten kann ich auch nur sagen, dass das Kreiswehrersatzamt nur selten jemanden vergisst. :D

    Schönen Tag noch,

    k.o.b

  15. Hallo Ahbadie,

    wieso musst Du Dir denn Sachen aus den Fingern saugen? Der Sinn des Berichtsheftes ist doch, dass Du aufschreibst, welche Inhalte Dir während Deiner Ausbildung vermittelt wurden. Und das kann eine Vorlage aus dem Netz nicht wissen.

    Ich vermute, dass es bei Dir schon etwas spät ist, aber Du solltest Dir einfach mal Dein vorhandenes Berichtsheft ansehen und selber überlegen, ob Du den einen oder anderen Eintrag noch verbessern kannst.

    Schönen Tag noch,

    k.o.b

  16. Hallo zusammen,

    schade, dass keiner von Euch draufgekommen ist. Zum Glück wusste mein Dozent eine Lösung.

    Für alle, die es interessiert:

    In Access haben wir bei den Beziehungseingenschaften geändert, dass die Beziehung alle Datensätze aus "Haupt" und nur die Datensätze aus "Interpret" enthält, bei denen die Inhalte der verknüpften Felder beider Tabellen gleich sind.

    Somit macht es nichts mehr aus, wie langsam das Datenbankmanagementsystem arbeitet, und das Programm läuft durch.

    Schönen Tag noch,

    k.o.b

  17. Hallo Koma9,

    ich finde, die Art, in der Du auf die Leute zugehst, die Dir helfen sollen, etwas unangepasst.

    Wenn Du im ersten Lehrjahr bist und deswegen nicht weisst, dass es eine sehr grosse Anzahl an verschiedenen Web-Editoren (HTML, JavaScript, ...) gibt, dann solltest Du auf eine Nachfrage von seiten der anderen User nicht angegriffen und wütend reagieren, sondern Dich vielleicht bemühen, Deine Frage anders zu stellen. Du kannst aber auch über eine erneute Gegenfrage herausfinden, was Dein Gegenüber nicht versteht.

    Die Leute wollen Dich mit Gegenfragen nicht provozieren, sondern sich ein genaueres Bild von Deinem Problem und der möglichen Lösung machen.

    k.o.b

  18. hallo panicman,

    das ist das, was in der msdn steht:

    Bei einem nichtmodalen Dialogfeld sollten Sie Ihren eigenen öffentlichen Konstruktor in Ihrer Dialogklasse bereitstellen. Um ein nichtmodales Dialogfeld zu erstellen, rufen Sie Ihren öffentlichen Konstruktor und dann die Member-FunktionCreate des Dialogobjekts auf, um die Dialogressource zu laden. Sie können Create sowohl während als auch nach dem Aufruf des Konstruktors aufrufen. Verfügt die Dialogressource über die Eigenschaft WS_VISIBLE, so wird das Dialogfeld unmittelbar angezeigt. Ist dies nicht der Fall, so sollten Sie die zugehörige Member-FunktionShowWindow aufrufen.

    Nachdem das Dialogfeld und sämtliche zugehörigen Steuerelemente erstellt wurden, aber noch bevor das Dialogfeld (eines beliebigen Typs) auf dem Bildschirm angezeigt wird, wird die Member-FunktionOnInitDialog des Dialogobjekts aufgerufen. Bei einem modalen Dialogfeld erfolgt dies während des Aufrufs von DoModal. Bei einem nichtmodalen Dialogfeld wird OnInitDialog aufgerufen, wenn Create aufgerufen wird. Sie überschreiben normalerweise OnInitDialog, um die Steuerelemente des Dialogfelds zu initialisieren, wie z. B. die Einstellung des Anfangstextes in einem Bearbeitungsfeld. Sie sollten die Member-Funktion OnInitDialog der Basisklasse CDialog beim Überschreiben von OnInitDialog aufrufen.

    Wenn Sie die Hintergrundfarbe Ihres Dialogfelds (und aller anderen Dialogfelder in Ihrer Anwendung) einstellen wollen, lesen Sie hierzu Einstellen der Hintergrundfarbe des Dialogfelds.

    ich hab bis jetzt nur modale dialoge erstellt, deshalb hab ich keine codes.

    k.o.b

  19. Hallo zusammen!!

    ist zwar Wochenende, aber ich hoffe, ein paar von Euch sind auch jetzt anwesend und können mir helfen.

    Ich hab ein Projekt, bei dem eine Access 2000 Datenbank automatisch mit Informationen von MP3-Dateien auf der Festplatte gefüllt werden soll.

    Dazu scanne ich die Platte, lese die MP3-Tags aus und fülle nach ein paar Plausibilitätsprüfungen die Datenbank. Es gibt 3 relevante Tabellen und 1 Abfrage. In die Tabellen trage ich nach jedem Dateiscan die Infos über Interpret, Titel und Album ein und merke mir den dazugehörenden Schlüssel. Diese möchte ich dann im Anschluss in die Abfrage schreiben, in der die restlichen Infos über die Datei eingetragen werden.

    Das Problem ist jetzt, dass beim Schreiben in die Abfrage folgende Fehlermeldung erscheint:

    „Das Microsoft Jet-Datenbankmodul kann in der Tabelle „Titel“ keinen Datensatz mit passenden Schlüsselfeldern „IDTitel“ finden“

    Wahlweise kann der Fehler auch für die Interpreten- oder Album-Tabelle auftauchen.

    Der Eintrag in den Tabellen besteht allerdings.

    Wenn ich das Programm im Debug-Modus schrittweise durchlaufen lasse, funktioniert es einwandfrei.

    Hat einer von Euch Ahnung, woran das liegen kann?

    Wäre nett, wenn Ihr Euch trotz Wochenende mal den Quellcode anseht, denn Dienstag ist Abgabetermin.

    Ach ja: programmiert wird mit Visual C++ 6.0

    Quellcode:

    
    void CDlgScan::FillDB(CString path, CMP3VerwaltungSet *m_pSet, CInterpretTeil *m_pSetInterpret, CTitelTeil *m_pSetTitel, CAlbumTeil *m_pSetAlbum)
    
    {
    
    	// verwendete Variablen:
    
    	// Position des letzten Backslashes im Pfad
    
    	// Kennzeichen, ob in den ID3-Tags ein Interpret, Titel gefunden wurde
    
    	// Kennzeichen, ob der Datensatz korrekt oder bestaetigt ist
    
    	// ID des Interpreten, Titel, Album in der Teiltabelle
    
    	// Kennzeichen, ob in den Teiltabellen ein Interpret, Titel gefunden wurde
    
    	// Strings mit den Informationen über Dateiname, Interpret, Titel, Album
    
    	int stelleBS, gefInt, gefTit, korrektDS = 0, bestaetigtDS = 0, intID = 0, titID= 0, albID = 0, gefIntTeil = 0, gefTitTeil = 0;
    
    	CString filename, interpret, titel, album;
    
    
    	// Objekt der Klasse CTagEdit, um die ID3-Tags der Datei zu bearbeiten
    
    	CTagEdit tag;
    
    
    	// Tags auslesen
    
    	tag.lesen(path);
    
    
    	// kopieren der Tags Artist, Titel und Album in die Stringvariablen
    
    	interpret.Format("%s", tag.inhalt.artist);
    
    	titel.Format("%s", tag.inhalt.songname);
    
    	album.Format("%s", tag.inhalt.album);
    
    
    	// abschneiden der überflüssigen Leerzeichen rechts am String
    
    	interpret.TrimRight(' ');
    
    	titel.TrimRight(' ');
    
    	album.TrimRight(' ');
    
    
    	// feststellen der Postition des letzten Backslashes vor dem Dateinamen
    
    	stelleBS = path.ReverseFind('\\');
    
    
    	// kopieren des Dateinamens in die Stringvariable
    
    	filename = path.Right(path.GetLength() - stelleBS - 1);
    
    
    	// wenn im Tag Interpret und Titel dasselbe steht wie im Dateinamen, wird der Datensatz als korrekt gekennzeichnet
    
    	gefInt = filename.Find(interpret);
    
    	gefTit = filename.Find(titel);
    
    
    	if((gefInt != -1) && (gefTit != -1))
    
    	{
    
    		korrektDS = -1;
    
    	}
    
    
    	// durchgehen der Interpretentabelle, um zu sehen, ob der Interpret schon bekannt ist
    
    	if(!m_pSetInterpret->IsEOF())
    
    	{
    
    		m_pSetInterpret->MoveFirst();
    
    	}
    
    
    	while(!m_pSetInterpret->IsEOF())
    
    	{
    
    		if(m_pSetInterpret->m_Interpret == interpret)
    
    		{
    
    			// ist der Interpret in der Tabelle vorhanden, wird die ID in die Variable geschrieben und das Satzkennzeichen "gefIntTeil" auf -1 ( = TRUE) gesetzt
    
    			intID = m_pSetInterpret->m_IDInterpretT;
    
    			gefIntTeil = -1;
    
    		}
    
    
    		m_pSetInterpret->MoveNext();
    
    	}
    
    
    	// wenn der Interpret noch nicht in der Tabelle steht, wird er angefügt, und die ID in die Variable "intID" geschrieben
    
    	if(!intID)
    
    	{
    
    		if(tag.inhalt.artist[0] == -52)
    
    		{
    
    			// ist das Interpreten - Tag leer, bekommt der Eintrag den Interpreten 1 ( = "unknown")
    
    			intID = 1;
    
    		}
    
    		else
    
    		{
    
    			m_pSetInterpret->AddNew();
    
    			m_pSetInterpret->m_Interpret = interpret;
    
    			m_pSetInterpret->m_best_tigtIntT = 0;
    
    
    			m_pSetInterpret->Update();
    
    
    			m_pSetInterpret->Requery();
    
    
    			m_pSetInterpret->MoveLast();
    
    
    			intID = m_pSetInterpret->m_IDInterpretT;
    
    		}
    
    	}
    
    
    	// selbes Vorgehen wie bei Interpret
    
    	if(!m_pSetTitel->IsEOF())
    
    	{
    
    		m_pSetTitel->MoveFirst();
    
    	}
    
    
    	while(!m_pSetTitel->IsEOF())
    
    	{
    
    		if(m_pSetTitel->m_Titel == titel)
    
    		{
    
    			titID = m_pSetTitel->m_IDTitelT;
    
    			gefTitTeil = -1;
    
    		}
    
    
    		m_pSetTitel->MoveNext();
    
    	}
    
    
    	if(!titID)
    
    	{
    
    		if(tag.inhalt.songname[0] == -52)
    
    		{
    
    			titID = 1;
    
    		}
    
    		else
    
    		{
    
    			m_pSetTitel->AddNew();
    
    			m_pSetTitel->m_Titel = titel;
    
    			m_pSetTitel->m_best_tigtTitT = 0;
    
    
    			m_pSetTitel->Update();
    
    
    			m_pSetTitel->Requery();
    
    
    			m_pSetTitel->MoveLast();
    
    
    			titID = m_pSetTitel->m_IDTitelT;
    
    		}
    
    	}
    
    
    	// Wenn die Variablen "gefIntTeil" und "gefTitTeil" ungleich 0 sind ( ==> TRUE), wird der Datensatzals "bestätigt" gekennzeichnet
    
    	if(gefIntTeil && gefTitTeil)
    
    	{
    
    		bestaetigtDS = -1;
    
    	}
    
    
    	// selbes Vorgehen wie bei Interpret und Titel
    
    	if(!m_pSetAlbum->IsEOF())
    
    	{
    
    		m_pSetAlbum->MoveFirst();
    
    	}
    
    
    	while(!m_pSetAlbum->IsEOF())
    
    	{
    
    		if(m_pSetAlbum->m_Album == album)
    
    		{
    
    			albID = m_pSetAlbum->m_IDAlbumT;
    
    		}
    
    
    		m_pSetAlbum->MoveNext();
    
    	}
    
    
    	if(!albID)
    
    	{
    
    		if(tag.inhalt.album[0] == -52)
    
    		{
    
    			albID = 1;
    
    		}
    
    		else
    
    		{
    
    			m_pSetAlbum->AddNew();
    
    			m_pSetAlbum->m_Album = album;
    
    			m_pSetAlbum->m_best_tigtAlbT = 0;
    
    
    			m_pSetAlbum->Update();
    
    
    			m_pSetAlbum->Requery();
    
    
    			m_pSetAlbum->MoveLast();
    
    
    			albID = m_pSetAlbum->m_IDAlbumT;
    
    		}
    
    	}
    
    
    	// ein neuer Datensatz wird in der "qryMain" angelegt, mit den Informationen aus den Tags und aus den Kontrollen während der vorhergehenden Methode
    
    	// hier steigt das Programm aus!!
    
    	m_pSet->AddNew();
    
    
    	m_pSet->m_Pfad = path;
    
    	m_pSet->m_IDInterpretH = intID;
    
    	m_pSet->m_IDTitelH = titID;
    
    	m_pSet->m_IDAlbumH = albID;
    
    	m_pSet->m_TrackNr = "0";
    
    	m_pSet->m_Genre = tag.inhalt.genre;
    
    	m_pSet->m_Tanz = "unknown";
    
    	m_pSet->m_neu = -1;
    
    	m_pSet->m_korrekt = korrektDS;
    
    	m_pSet->m_bestaetigt = bestaetigtDS;
    
    	m_pSet->m_loeschen = 0;
    
    
    	m_pSet->Update();
    
    
    	m_pSet->Requery();
    
    }
    
    

    Euer k.o.b

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...