Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Sowas wie #Include für HTML? (https://www.delphipraxis.net/43961-sowas-wie-include-fuer-html.html)

Pseudemys Nelsoni 11. Apr 2005 11:50


Sowas wie #Include für HTML?
 
Moin,

ich bin gerade dabei eine HTML Datei per Delphi zu schreiben, als Beispiel sag ich huier mal was ich vorhabe: Sagen wir mal meine Datei hat bereits 2 Textfelder die ich schon per hand hinzugefügt habe:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
<style type="text/css">
<!--
body {
   background-color: #000000;
}
body,td,th {
   color: #FFFFFF;
   font-family: Tahoma;
}
.tab {
   font-family: Tahoma;
   font-size: 12px;
   border: 1px solid #16376D;
}
.Stil1 {
   font-size: 12px;
   font-weight: bold;
}
-->
</style></head>

<body>


</p>
<table width="100%" height="0" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="0" bgcolor="#16376D"> <span class="Stil1">Log vom 28.02.2005</span></td>
  </tr>
  <tr>
    <td height="0"><table width="100%" height="0" border="0" class="tab" cellpadding="0" cellspacing="0">
      <tr>
        <td width="7%">[b][00:00:00][/b]</td>
        <td width="5%">[b][silent][/b]</td>
        <td width="88%">[b]Text[/b]</td>
      </tr>
      <tr>
        <td height="14">[b][00:00:00][/b]</td>
        <td>[b][silent][/b]</td>
        <td>[b]Text[/b]</td>
      </tr>
    </table></td>
  </tr>
</table>


</p>
</body>
</html>
Also die Zeilen in der Tabelle sind das hier:

Code:
      <tr>
        <td width="7%">[b][00:00:00][/b]</td>
        <td width="5%">[b][silent][/b]</td>
        <td width="88%">[b]Text[/b]</td>
      </tr>
      <tr>
        <td height="14">[b][00:00:00][/b]</td>
        <td>[b][silent][/b]</td>
        <td>[b]Text[/b]</td>
      </tr>
So, nun ist es so das ich bei jedem Buttonklick (wird pro sekunde vielleicht 1 mal geklickt) eine solche zeile hinzufügen muss. Um dies zu tun müsste ich auch die richtige Stelle finden wo ich die Neue reinquetsche, das heisst unter dem letzten:

Code:
      <tr>
        <td height="14">[b][00:00:00][/b]</td>
        <td>[b][silent][/b]</td>
        <td>[b]Text[/b]</td>
      </tr>
Das ist mir aber zu umständlich, viel besser wäre es, wenn ich eine seperate Datei hätte wo ich die Zeilen immer ans Ende anfügen kann und in meiner Index-Seite ein Include auf diese Datei hätte.

Wisst ihr was ich meine?

PHP & Co Fällt weg, da die Seite auf dem Client laufen muss, d.h nicht auf nem Server

glkgereon 11. Apr 2005 11:54

Re: Sowas wie #Include für HTML?
 
spontan fielen mir da frames ein

aber is schon was anderes als ein echtes include....

Pseudemys Nelsoni 11. Apr 2005 11:59

Re: Sowas wie #Include für HTML?
 
Wie würde ich das denn machen?

Jede Zeile ist in einer Tabelle, das heisst in einer Spalte einer Tabelle, dann müsst ich ja die komplette Tabelle im Frame haben und schon könnte ich wieder nicht ans ende anfügen :(

SubData 11. Apr 2005 12:02

Re: Sowas wie #Include für HTML?
 
Also ich arbeite mit folgendem Code:

In die HTML Datei:
Code:
Delphi-Quellcode:
function ReplaceINC(Doc: String): String;
var
  S1, S2, S3 : String;
  P1, P2, P3 : Integer;
begin;
[...] // Hier ist noch anderweitiger Code von mir...
  while Pos('<!--INC:', Doc) > 0 do
  begin
    P1 := Pos('<!--INC:', Doc);
    P2 := P1 + 8;
    P3 := Pos(':INC-->', Doc) - P2;
    S1 := System.Copy(Doc, P2, P3);
    Delete(Doc, P1, (P3 + 15));
    Insert(LoadTemplateNoVars('inc/' + S1 + '.html'), Doc, P1);
  end;
end;
LoadTemplateNoVars ist ne Funktion von mir, die einfach nur die HTML Datei zurückgibt (Also den Inhalt)

Edit:

Du kannst folgendes
Delphi-Quellcode:
LoadTemplateNoVars('inc/' + S1 + '.html')
auch einfach durch ne Variable ersetzen ... wie es beliebt :>

Pseudemys Nelsoni 11. Apr 2005 12:12

Re: Sowas wie #Include für HTML?
 
Moin Subdata,

also es geht darum:

Ich habe einen Chat programmiert, geloggt werden soll das Ganze dann in HTML, d.h für jede neue Nachricht wird die zu inkludierende Datei eine Zeile grösser, wenn ich das ganze aber immer wieder bei jeder Nachricht in eine Andere kopieren muss, wird das bei 10.000 nachher sicher langsam.

Danke für deinen Code trotzdem, aber denke nicht das ich den hier verwenden kann :(

Dann ein weiteres Problem: ich mach das ganze nicht in Delphi, sondern MSL, da ich dachte das das hier keine Rolle spielt hab ich auch gesagt ich benutzt Delphi. Dem ist aber nicht so.

Also bräuchte ich schon wirkloch sowas wie Include()... Javascript würde gehn (denke ich), aber davon habe ich kein Plan.

MfG ;)

SubData 11. Apr 2005 12:14

Re: Sowas wie #Include für HTML?
 
Hmm.....

Nein in dem Fall solltest du einen Live-Stream benutzen...

Eine nicht endende HTTP GET Anfrage, in der einfach nur die weiteren Zeilen hinzugefügt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz