2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

commandref_join.pl: introducing check for negative tag-Count

git-svn-id: https://svn.fhem.de/fhem/trunk@16266 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2018-02-25 18:22:51 +00:00
parent e471134b68
commit 641dbe0ff4
4 changed files with 76 additions and 76 deletions

View File

@ -411,7 +411,7 @@ FBAHA_Ready($)
<h3>FBAHA</h3> <h3>FBAHA</h3>
<ul> <ul>
<br>Note: Fritz!OS 6.90 and later does not offer the AHA service needed by <br>Note: Fritz!OS 6.90 and later does not offer the AHA service needed by
this module. Use the successor FBAHAHTTP instead of this module.</b><br> this module. Use the successor FBAHAHTTP instead of this module.<br>
This module connects to the AHA server (AVM Home Automation) on a FRITZ!Box. This module connects to the AHA server (AVM Home Automation) on a FRITZ!Box.
It serves as the "physical" counterpart to the <a href="#FBDECT">FBDECT</a> It serves as the "physical" counterpart to the <a href="#FBDECT">FBDECT</a>
@ -496,7 +496,7 @@ FBAHA_Ready($)
<h3>FBAHA</h3> <h3>FBAHA</h3>
<ul> <ul>
<br>Achtung: ab Fritz!OS 6.90 ist der ben&ouml;tigte Dienst deaktiviert, <br>Achtung: ab Fritz!OS 6.90 ist der ben&ouml;tigte Dienst deaktiviert,
bitte den Nachfolger FBAHAHTTP verwenden.</b><br> bitte den Nachfolger FBAHAHTTP verwenden.<br>
Dieses Modul verbindet sich mit dem AHA (AVM Home Automation) Server auf Dieses Modul verbindet sich mit dem AHA (AVM Home Automation) Server auf
einem FRITZ!Box. Es dient als "physikalisches" Gegenst&uuml;ck zum <a einem FRITZ!Box. Es dient als "physikalisches" Gegenst&uuml;ck zum <a

View File

@ -5843,7 +5843,6 @@ s2Hex($)
<li>battery<br> <li>battery<br>
return the charge of the battery in %, as battery:value % or battery:low return the charge of the battery in %, as battery:value % or battery:low
</li> </li>
</li>
<br><br><b>CLASS DOOR_LOCK_LOGGING, V1 (deprecated)</b> <br><br><b>CLASS DOOR_LOCK_LOGGING, V1 (deprecated)</b>
<li>doorLockLoggingRecordsSupported<br> <li>doorLockLoggingRecordsSupported<br>

View File

@ -530,49 +530,47 @@ isday</pre>
=begin html_DE =begin html_DE
<a name="SUNRISE_EL"></a> <a name="SUNRISE_EL"></a>
<div id="SUNRISE_EL"> <h3>SUNRISE_EL</h3>
<h3>SUNRISE_EL</h3>
<ul> <ul>
<p class="info"> <p>
<strong lang="en">SUNRISE_EL</strong> definiert eine Reihe von Perl-Subroutinen (<abbr>z.B.</abbr> zur Nutzung mit <a href="#at">at</a>): <strong>SUNRISE_EL</strong> definiert eine Reihe von Perl-Subroutinen (<abbr>z.B.</abbr> zur Nutzung mit <a href="#at">at</a>):
</p> </p>
<ul class="shortref"> <ul>
<li lang="en"><code>sunrise()</code> - absolute Zeit des n&auml;chsten Sonnenaufgangs (+ 24 h, wenn am n&auml;chsten Tag)</li> <li><code>sunrise()</code> - absolute Zeit des n&auml;chsten Sonnenaufgangs (+ 24 h, wenn am n&auml;chsten Tag)</li>
<li lang="en"><code>sunset()</code> - absolute Zeit des n&auml;chsten Sonnenuntergangs (+ 24 h, wenn am n&auml;chsten Tag)</li> <li><code>sunset()</code> - absolute Zeit des n&auml;chsten Sonnenuntergangs (+ 24 h, wenn am n&auml;chsten Tag)</li>
<li lang="en"><code>sunrise_rel()</code> - relative Zeit des n&auml;chsten Sonnenaufgangs</li> <li><code>sunrise_rel()</code> - relative Zeit des n&auml;chsten Sonnenaufgangs</li>
<li lang="en"><code>sunset_rel()</code> - relative Zeit des n&auml;chsten Sonnenuntergangs</li> <li><code>sunset_rel()</code> - relative Zeit des n&auml;chsten Sonnenuntergangs</li>
<li lang="en"><code>sunrise_abs()</code> - absolute Zeit des n&auml;chsten Sonnenaufgangs (ohne Stundenzuschlag)</li> <li><code>sunrise_abs()</code> - absolute Zeit des n&auml;chsten Sonnenaufgangs (ohne Stundenzuschlag)</li>
<li lang="en"><code>sunset_abs()</code> - relative Zeit des n&auml;chsten Sonnenuntergangs (ohne Stundenzuschlag)</li> <li><code>sunset_abs()</code> - relative Zeit des n&auml;chsten Sonnenuntergangs (ohne Stundenzuschlag)</li>
<li lang="en"><code>sunrise_abs_dat()</code> - absolute Zeit des n&auml;chsten Sonnenaufgangs an einem bestimmten Tag</li> <li><code>sunrise_abs_dat()</code> - absolute Zeit des n&auml;chsten Sonnenaufgangs an einem bestimmten Tag</li>
<li lang="en"><code>sunset_abs_dat()</code> - relative Zeit des n&auml;chsten Sonnenuntergangs an einem bestimmten Tag</li> <li><code>sunset_abs_dat()</code> - relative Zeit des n&auml;chsten Sonnenuntergangs an einem bestimmten Tag</li>
<li lang="en"><code>isday()</code> - Tag oder Nacht</li> <li><code>isday()</code> - Tag oder Nacht</li>
</ul> </ul>
<h4>Breite, L&auml;nge und H&ouml;henwinkel</h4> <h4>Breite, L&auml;nge und H&ouml;henwinkel</h4>
<p> <p>
Bevor du <strong lang="en">SUNRISE_EL</strong> verwendest, solltest du im <a href="#global">global-Device</a> die Bevor du <strong>SUNRISE_EL</strong> verwendest, solltest du im <a href="#global">global-Device</a> die
Werte f&uuml;r <span lang="en">latitude</span> (geographische Breite) und <span lang="en">longitude</span> (geographische L&auml;nge) entsprechend Werte f&uuml;r <span>latitude</span> (geographische Breite) und <span>longitude</span> (geographische L&auml;nge) entsprechend
deines Standorts setzen. deines Standorts setzen.
</p> </p>
<div style="padding-left: 5ex;"> <div>
<h4>Exkurs: <span lang="en">latitude</span> &amp; <span lang="en">longitude</span> ermitteln</h4> <h4>Exkurs: <span>latitude</span> &amp; <span>longitude</span> ermitteln</h4>
<p> <p>
Deine geopgragischen Koordinaten kannst du <abbr>z.B.</abbr> mit <a href="https://maps.google.com">Google Maps</a> bestimmen. Deine geopgragischen Koordinaten kannst du <abbr>z.B.</abbr> mit <a href="https://maps.google.com">Google Maps</a> bestimmen.
Dazu setzt du einen Punkt auf der Karte und findest dann im unteren Bereich der Karte die Angabe f&uuml;r beide Werte. Dazu setzt du einen Punkt auf der Karte und findest dann im unteren Bereich der Karte die Angabe f&uuml;r beide Werte.
Der erste Wert ist die geographische Breite (<span lang="en">latitude</span>); der zweite Wert die geographische L&auml;nge Der erste Wert ist die geographische Breite (<span>latitude</span>); der zweite Wert die geographische L&auml;nge
(<span lang="en">longitude</span>). (<span>longitude</span>).
</p> </p>
<p> <p>
Der <span lang="en">Default</span>-Wert ist 50.112, 8.686 (<a href="https://goo.gl/maps/vkyedDL1DJp">Frankfurt am Main</a>). Der <span>Default</span>-Wert ist 50.112, 8.686 (<a href="https://goo.gl/maps/vkyedDL1DJp">Frankfurt am Main</a>).
</p> </p>
</div> </div>
<p> <p>
<strong lang="en">SUNRISE_EL</strong> geht von einem H&ouml;henwinkel der Sonne bezogen zum Horizont, <var>h</var>, von -6&deg; aus. Dieser Wert bedeutet, <strong>SUNRISE_EL</strong> geht von einem H&ouml;henwinkel der Sonne bezogen zum Horizont, <var>h</var>, von -6&deg; aus. Dieser Wert bedeutet,
dass die Sonne 6&deg; <strong>unter</strong> dem Horizont steht und Lesen im Freien ohne k&uuml;nstliche Beleuchtung nicht dass die Sonne 6&deg; <strong>unter</strong> dem Horizont steht und Lesen im Freien ohne k&uuml;nstliche Beleuchtung nicht
mehr m&ouml;glich ist (<span lang="en">civil twilight</span>, b&uuml;rgerliche D&auml;mmerung). mehr m&ouml;glich ist (<span>civil twilight</span>, b&uuml;rgerliche D&auml;mmerung).
<strong lang="en">SUNRISE_EL</strong> speichert diesen Wert in <var lang="en"><code>$defaultaltit</code></var>. <strong>SUNRISE_EL</strong> speichert diesen Wert in <var><code>$defaultaltit</code></var>.
</p> </p>
<p> <p>
Siehe auch <a href="http://search.cpan.org/~jforget/DateTime-Event-Sunrise-0.0505/lib/DateTime/Event/Sunrise.pm">perldoc DateTime::Event::Sunrise</a> f&uuml;r Siehe auch <a href="http://search.cpan.org/~jforget/DateTime-Event-Sunrise-0.0505/lib/DateTime/Event/Sunrise.pm">perldoc DateTime::Event::Sunrise</a> f&uuml;r
@ -586,59 +584,59 @@ isday</pre>
</p> </p>
<dl> <dl>
<dt> <dt>
<var lang="en">unix timestamp</var> <var>unix timestamp</var>
</dt> </dt>
<dd> <dd>
<p> <p>
<strong>Ausschlie&szlig;lich</strong> <code lang="en">sunrise_abs_dat()</code> &amp; <code lang="en">sunset_abs_dat()</code> <strong>Ausschlie&szlig;lich</strong> <code>sunrise_abs_dat()</code> &amp; <code>sunset_abs_dat()</code>
erwarten als ersten Parameter einen Unix-Timestamp (Unix-Epoche) in Sekunden, der ein Datum spezifiziert. Andere Subroutinen erwarten als ersten Parameter einen Unix-Timestamp (Unix-Epoche) in Sekunden, der ein Datum spezifiziert. Andere Subroutinen
erwarten diesen Parameter nicht! erwarten diesen Parameter nicht!
</p> </p>
</dd> </dd>
<dt> <dt>
<var lang="en">altitude</var> <var>altitude</var>
</dt> </dt>
<dd> <dd>
<p> <p>
Eine der folgenden Zeichenketten, die unterschiedliche H&ouml;henwinkel <var>h</var> definieren und den Wert Eine der folgenden Zeichenketten, die unterschiedliche H&ouml;henwinkel <var>h</var> definieren und den Wert
von <code><var lang="en">$defaultaltit</var></code> ver&auml;ndern. von <code><var>$defaultaltit</var></code> ver&auml;ndern.
</p> </p>
<p> <p>
Erlaubte Werte sind: Erlaubte Werte sind:
</p> </p>
<ul> <ul>
<li> <li>
<code lang="en"><var>REAL</var></code>, <var>h</var> = 0&deg;, <code><var>REAL</var></code>, <var>h</var> = 0&deg;,
</li> </li>
<li> <li>
<code lang="en"><var>CIVIL</var></code>, <var>h</var> = -6&deg;, <code><var>CIVIL</var></code>, <var>h</var> = -6&deg;,
</li> </li>
<li> <li>
<code lang="en"><var>NAUTIC</var></code>, <var>h</var> = -12&deg;, <code><var>NAUTIC</var></code>, <var>h</var> = -12&deg;,
</li> </li>
<li> <li>
<code lang="en"><var>ASTRONOMIC</var></code>, <var>h</var> = -18&deg;, <code><var>ASTRONOMIC</var></code>, <var>h</var> = -18&deg;,
</li> </li>
<li> <li>
oder <code lang="en"><var>HORIZON=</var></code>, gefolgt von einer positiven oder negativen Zahl ohn Gradzeichen, die einen H&ouml;henwinkel oder <code><var>HORIZON=</var></code>, gefolgt von einer positiven oder negativen Zahl ohn Gradzeichen, die einen H&ouml;henwinkel
angibt. angibt.
</li> </li>
</ul> </ul>
</dd> </dd>
<dt> <dt>
<var lang="en">offset</var> <var>offset</var>
</dt> </dt>
<dd> <dd>
<p> <p>
<span lang="en">Offset</span> in Sekunden, der zu dem R&uuml;ckgabewert der Funktion addiert wird. <span>Offset</span> in Sekunden, der zu dem R&uuml;ckgabewert der Funktion addiert wird.
</p> </p>
<p> <p>
<code lang="en">isday()</code> <code>isday()</code>
ignoriert diesen Wert. ignoriert diesen Wert.
</p> </p>
</dd> </dd>
<dt> <dt>
<var lang="en">min</var> <var>min</var>
</dt> </dt>
<dd> <dd>
@ -646,19 +644,19 @@ isday</pre>
Einen Zeitstempel im Format <var>hh:mm</var>, vor dem keine Aktion ausgef&uuml;hrt werden soll. Einen Zeitstempel im Format <var>hh:mm</var>, vor dem keine Aktion ausgef&uuml;hrt werden soll.
</p> </p>
<p> <p>
<code lang="en">isday()</code> wird <var>(int) 0</var> zur&uuml;ckliefern, wenn <var lang="en">min</var> gesetzt <code>isday()</code> wird <var>(int) 0</var> zur&uuml;ckliefern, wenn <var>min</var> gesetzt
und der aktuelle Zeitstempel kleiner ist. und der aktuelle Zeitstempel kleiner ist.
</p> </p>
</dd> </dd>
<dt> <dt>
<var lang="en">max</var> <var>max</var>
</dt> </dt>
<dd> <dd>
<p> <p>
Einen Zeitstempel im Format <var>hh:mm</var>, nach dem keine Aktion ausgef&uuml;hrt werden soll. Einen Zeitstempel im Format <var>hh:mm</var>, nach dem keine Aktion ausgef&uuml;hrt werden soll.
</p> </p>
<p> <p>
<code lang="en">isday()</code> wird <var>(int) 0</var> zur&uuml;ckliefern, wenn <var lang="en">max</var> gesetzt <code>isday()</code> wird <var>(int) 0</var> zur&uuml;ckliefern, wenn <var>max</var> gesetzt
und der aktuelle Zeitstempel gr&ouml;&szlig;er ist. und der aktuelle Zeitstempel gr&ouml;&szlig;er ist.
</p> </p>
</dd> </dd>
@ -667,7 +665,7 @@ isday</pre>
<h5>Subroutinen</h5> <h5>Subroutinen</h5>
<dl> <dl>
<dt lang="en"> <dt>
<p><code>sunrise(), sunset()</code></p> <p><code>sunrise(), sunset()</code></p>
</dt> </dt>
<dd> <dd>
@ -676,7 +674,7 @@ isday</pre>
wenn der Zeitpunkt am n&auml;chsten Tag sein wird, im Format <var>hh:mm:ss</var>. wenn der Zeitpunkt am n&auml;chsten Tag sein wird, im Format <var>hh:mm:ss</var>.
</dd> </dd>
<dt lang="en"> <dt>
<p><code>sunrise_rel(), sunset_rel()</code></p> <p><code>sunrise_rel(), sunset_rel()</code></p>
</dt> </dt>
<dd> <dd>
@ -684,7 +682,7 @@ isday</pre>
<var>hh:mm:ss</var>. <var>hh:mm:ss</var>.
</dd> </dd>
<dt lang="en"> <dt>
<p><code>sunrise_abs(), sunset_abs()</code></p> <p><code>sunrise_abs(), sunset_abs()</code></p>
</dt> </dt>
<dd> <dd>
@ -693,7 +691,7 @@ isday</pre>
zu addieren im Format <var>hh:mm:ss</var>. zu addieren im Format <var>hh:mm:ss</var>.
</dd> </dd>
<dt lang="en"> <dt>
<p><code>sunrise_abs_dat(), sunset_abs()_dat</code></p> <p><code>sunrise_abs_dat(), sunset_abs()_dat</code></p>
</dt> </dt>
<dd> <dd>
@ -702,7 +700,7 @@ isday</pre>
</dd> </dd>
<dt lang="en"> <dt>
<p><code>isday()</code></p> <p><code>isday()</code></p>
</dt> </dt>
<dd> <dd>
@ -713,32 +711,32 @@ isday</pre>
<dl> <dl>
<dt> <dt>
<p> <p>
<code lang="en">sunrise("CIVIL");</code> <code>sunrise("CIVIL");</code>
</p> </p>
</dt> </dt>
<dd lang="en"> <dd>
<p> <p>
Zeitpunkt des Sonnenaufgangs bei einem H&ouml;henwinkel der Sonne von -6&deg; unter dem Horizont (identisch zu <code lang="en">sunrise()</code>). Zeitpunkt des Sonnenaufgangs bei einem H&ouml;henwinkel der Sonne von -6&deg; unter dem Horizont (identisch zu <code>sunrise()</code>).
</p> </p>
</dd> </dd>
<dt> <dt>
<p> <p>
<code lang="en">sunset("HORIZON=-3");</code> <code>sunset("HORIZON=-3");</code>
</p> </p>
</dt> </dt>
<dd> <dd>
<p> <p>
Zeitpunkt des Sonnenuntergangs bei einem H&ouml;henwinkel der Sonne von 3&deg; unter dem Horizont Zeitpunkt des Sonnenuntergangs bei einem H&ouml;henwinkel der Sonne von 3&deg; unter dem Horizont
(zwischen <code lang="en"><var>REAL</var></code> und <code lang="en"><var>CIVIL</var></code>). (zwischen <code><var>REAL</var></code> und <code><var>CIVIL</var></code>).
</p> </p>
</dd> </dd>
<dt> <dt>
<p> <p>
<code lang="en">sunset("HORIZON=1");</code> <code>sunset("HORIZON=1");</code>
</p> </p>
</dt> </dt>
<dd> <dd>
@ -749,7 +747,7 @@ isday</pre>
<dt> <dt>
<p> <p>
<code lang="en">defmod a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on</code> <code>defmod a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on</code>
</p> </p>
</dt> </dt>
<dd> <dd>
@ -760,7 +758,7 @@ isday</pre>
<dt> <dt>
<p> <p>
<code lang="en"> <code>
my $date = time() + 7*86400;<br /> my $date = time() + 7*86400;<br />
sunrise_abs_dat($date); sunrise_abs_dat($date);
</code> </code>
@ -774,7 +772,7 @@ isday</pre>
<dt> <dt>
<p> <p>
<code lang="en"> <code>
my $date = time() + 7*86400;<br /> my $date = time() + 7*86400;<br />
sunrise_abs_dat($date, "CIVIL"); sunrise_abs_dat($date, "CIVIL");
</code> </code>
@ -787,58 +785,58 @@ isday</pre>
</dd> </dd>
</dl> </dl>
<h4 lang="en">Define</h4> <h4>Define</h4>
<blockquote> <blockquote>
<strong lang="en">SUNRISE_EL</strong> kann nicht explizit als <span lang="en">Device</span> definiert werden, <strong>SUNRISE_EL</strong> kann nicht explizit als <span>Device</span> definiert werden,
sondern bietet die oben genannten Subroutinen. sondern bietet die oben genannten Subroutinen.
</blockquote> </blockquote>
<h4 lang="en">Set</h4> <h4>Set</h4>
<blockquote> <blockquote>
<strong lang="en">SUNRISE_EL</strong> unterst&uuml;tzt <var lang="en">set</var> nicht. <strong>SUNRISE_EL</strong> unterst&uuml;tzt <var>set</var> nicht.
</blockquote> </blockquote>
<h4 lang="en">Get</h4> <h4>Get</h4>
<blockquote> <blockquote>
<strong lang="en">SUNRISE_EL</strong> unterst&uuml;tzt <var lang="en">get</var> nicht. <strong>SUNRISE_EL</strong> unterst&uuml;tzt <var>get</var> nicht.
</blockquote> </blockquote>
<h4>Attribute</h4> <h4>Attribute</h4>
<p> <p>
Diese Attribute m&uuml;ssen im <span lang="en"><a href="#global">global</a>-Device</span> gesetzt werden! Diese Attribute m&uuml;ssen im <span><a href="#global">global</a>-Device</span> gesetzt werden!
</p> </p>
<dl> <dl>
<dt> <dt>
<p> <p>
<var lang="en">latitude</var> <var>latitude</var>
</p> </p>
</dt> </dt>
<dd> <dd>
<blockquote> <blockquote>
Geographische Breite in Dezimalgrad in Form eines <code lang="en">float</code>, <abbr>z.B</abbr> <code><var>49.872471</var></code>. Geographische Breite in Dezimalgrad in Form eines <code>float</code>, <abbr>z.B</abbr> <code><var>49.872471</var></code>.
</blockquote> </blockquote>
<blockquote> <blockquote>
<span lang="en">Default</span>-Wert ist <code><var>50.112</var></code>. <span>Default</span>-Wert ist <code><var>50.112</var></code>.
</blockquote> </blockquote>
</dd> </dd>
<dt> <dt>
<p> <p>
<var lang="en">longitude</var> <var>longitude</var>
</p> </p>
</dt> </dt>
<dd> <dd>
<blockquote> <blockquote>
Geographische L&auml;nge in Dezimalgrad in Form eines <code lang="en">float</code>, <abbr>z.B</abbr> <code><var>8.650991</var></code>. Geographische L&auml;nge in Dezimalgrad in Form eines <code>float</code>, <abbr>z.B</abbr> <code><var>8.650991</var></code>.
</blockquote> </blockquote>
<blockquote> <blockquote>
<span lang="en">Default</span>-Wert ist <code><var>8.686</var></code>. <span>Default</span>-Wert ist <code><var>8.686</var></code>.
</blockquote> </blockquote>
</dd> </dd>
<dt> <dt>
<p> <p>
<var lang="en">altitude</var> <var>altitude</var>
</p> </p>
</dt> </dt>
<dd> <dd>
@ -846,11 +844,10 @@ isday</pre>
H&ouml;henwinkel <var>h</var> der Sonne bezogen auf den Horizont in Grad in Form einer Zahl ohne Gradzeichen. H&ouml;henwinkel <var>h</var> der Sonne bezogen auf den Horizont in Grad in Form einer Zahl ohne Gradzeichen.
</blockquote> </blockquote>
<blockquote> <blockquote>
<span lang="en">Default</span>-Wert ist <code><var>-6</var></code>. <span>Default</span>-Wert ist <code><var>-6</var></code>.
</blockquote> </blockquote>
</dd> </dd>
</dl> </dl>
</div>
</ul> </ul>
=end html_DE =end html_DE

View File

@ -15,7 +15,7 @@ use warnings;
my $noWarnings = grep $_ eq '-noWarnings', @ARGV; my $noWarnings = grep $_ eq '-noWarnings', @ARGV;
my ($verify) = grep $_ =~ /\.pm$/ , @ARGV; my ($verify) = grep $_ =~ /\.pm$/ , @ARGV;
use constant TAGS => qw{ul li code b i u table tr td div}; use constant TAGS => qw{ul li code b i u table tr td div h4 h3};
sub generateModuleCommandref($$;$$); sub generateModuleCommandref($$;$$);
@ -176,7 +176,11 @@ generateModuleCommandref($$;$$)
$hasLink = ($l =~ m/<a name="$mod"/) if(!$hasLink); $hasLink = ($l =~ m/<a name="$mod"/) if(!$hasLink);
foreach $tag (TAGS) { foreach $tag (TAGS) {
$tagcount{$tag} +=()= ($l =~ /<$tag>/gi); $tagcount{$tag} +=()= ($l =~ /<$tag>/gi);
$tagcount{$tag} -=()= ($l =~ /<\/$tag>/gi) if($tagcount{$tag} > 0); $tagcount{$tag} -=()= ($l =~ /<\/$tag>/gi);
if($tagcount{$tag} < 0) {
print "*** $lang $fPath: negative tagcount for $tag, line $line\n";
$tagcount{$tag} = 0;
}
$llwct{$tag} = $line if(!$tagcount{$tag}); $llwct{$tag} = $line if(!$tagcount{$tag});
} }