mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 27.04.2024 07:11 Benutzername: Passwort: Auto-Login

Thema: [ASP] Problem beim Auslesen von einem String vom 04.08.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [ASP] Problem beim Auslesen von einem String
Autor Nachricht
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Fr 04.08.2006 09:27
Titel

[ASP] Problem beim Auslesen von einem String

Antworten mit Zitat Zum Seitenanfang

Hallo Leute,

ich habe hier ein Problem bei dem ich nicht mehr weiterkomme.
Und zwar folgendes,
ich habe in einer Datenbank eine Tabellenspalte ewig viel text.
der text ist mit diversen Bildern (Eine Linie (Linie.gif)) in versch. bereiche unterteilt.
nun möchte ich das nach jeder 10ten Linie der Text (string) abgebrochen wird und ein Link produziert wird der ab der letzten Linie den weiterführenden Text zeigt.Aber auch nur soviel das wieder nur max 10 linien gezeigt werden.
falls irgendwann keine 10 mehr da sind soll er einfach abbrechen.

folgendes Script habe ich bis jetzt geschrieben

Code:


<%

start = request.querystring("start")
pos = request.querystring("pos")


SQL="SELECT * FROM content WHERE contentID=25"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open SQL, db, 3, 3

inhalt = rs("content")

dim anzahl
dim stelle
dim datensatz
dim ausgabe
dim zeichen

anzahl = 1
stelle = 1

Do While (InStr(stelle, inhalt, "linie.gif") > 0)
   Stelle = InStr(stelle, inhalt, "linie.gif") + 1
   'response.write "erste schl.: " & stelle & "<br />"
   anzahl = anzahl + 1
Loop

datensatz = 1

If start > 0 then
   
   stelle = pos
   Do While (InStr(stelle, inhalt, "linie.gif") > 0) AND (datensatz < start)
      stelle = InStr(stelle, inhalt, "linie.gif") + 1
      datensatz = datensatz + 1
      'response.write datensatz
   Loop
   
   
End If

'datensatz = 1
stelle = 1
Do While (InStr(stelle, inhalt, "linie.gif") > 0) AND (datensatz < start + 11)
   stelle = InStr(stelle, inhalt, "linie.gif") + 1
   datensatz = datensatz + 1
Loop

zeichen = stelle + 9
ausgabe = left(rs("content"), zeichen)
response.write ausgabe

start = datensatz

pos = stelle + 1



response.write "<br /><br /><br />"
%>

<a href="test3.asp?start=<% =start %>&pos=<% =pos %>" target="_self">&raquo; nächste seite</a>

<%
rs.close
%>



mit diesem code erhalte ich beim laden der seite auch die ersten 10 linien und danch meinen link der die seite neu lädt.
nur danach macht das script was es will.
auch die ersten linien sind dabei was ich ja absolut nicht möchte.

kann mir hier bitte jemand unter die arme greifen?


dank euch


Zuletzt bearbeitet von Sarky am Fr 04.08.2006 09:39, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Rob Bash

Dabei seit: 09.09.2004
Ort: Bielefeld
Alter: 42
Geschlecht: Männlich
Verfasst Sa 05.08.2006 14:37
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo Kash,

ich weiss nicht ob ich dein problem richtig verstanden habe. zudem hatte ich nicht die möglichkeit, etwas zu testen.

ich habe hier mal einen lösungsvorschlag. ist weitestgehen neu: (wie gesagt, ich konnte nicht testen, kann also den einen oder anderen kleinen syntax oder gedankenfehler enthalten.)

Code:
<%
dim page
dim anfang
dim ende
dim out
dim linie
dim i

page = "" & request.querystring("page")

if page = "" or not isnumeric(page) then
   page = 0
else
   page = cint(page)
end if

SQL="SELECT * FROM content WHERE contentID=25"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open SQL, db, 3, 3

inhalt = rs("content")

rs.close

anfang = 0
ende = 0
linie = "linie.gif"

'anfang ermitteln
for i = 0 to page * 10 ' n * anzahl der linien
   if instr(anfang, inhalt, linie) > 0 then
      anfang = instr(anfang, inhalt, linie) + len(linie)
   end if
next

'ende ermitteln
for i = page * 10 to (page + 1) * 10 ' n * anzahl der linien
   if instr(ende, inhalt, linie) > 0 then
      ende = instr(ende, inhalt, linie) + len(linie)
   end if
next

out = mid(inhalt, anfang, ende - anfang)
page = page + 1

response.write "<br /><br /><br />"
%>

<a href="test3.asp?page=<% =page %>" target="_self">&raquo; nächste seite</a>


wenn das nicht klappt, schick mir mal deine datenbank.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Mo 07.08.2006 09:02
Titel

Antworten mit Zitat Zum Seitenanfang

hallo rob bash,

leider funktioniert deine Lösung auch noch nicht so richtig.
zum beispiel zeigt er nie die zeichen bis zur ersten trennung durch 'linie.gif'.
ausgabe erfolgt erst ab dem 'linie.gif' das erste mal im text auftaucht.
dann richtiger weiße solange bis 10 linien angezeigt werden.

die datenbank kann ich dir leider nicht senden.
stell dir einfach den Inhalt in der Spalte folgend vor.

Es ist nur text enthalten, dieser wird durch eine Trennung in themenbereiche untergliedert.
diese trennung ist ein Bild > linie.gif < ziel ist es durch die neue Programmierung die ausgabe ordentlicher darzustellen.
der text ist ellenlang und es kann sein das über 40 Linien gibt.
Wir wollen pro seite immer nur soviel text zeichen wie es 10lininen gibt.
danach soll die ausgabe aufhören.

danach wird ein link projeziert der die seite neu lädt mit genau dem inhalt der nach der 10ten Linie kommt.
aber auch nur wieder 10 linien lang. oder falls es mal keine 10 pro seite gibt soviele wie übrig.

ist es jetzt klarer?
  View user's profile Private Nachricht senden
Rob Bash

Dabei seit: 09.09.2004
Ort: Bielefeld
Alter: 42
Geschlecht: Männlich
Verfasst Mo 07.08.2006 10:14
Titel

Antworten mit Zitat Zum Seitenanfang

wer testen kann ist klar im vorteil:

Code:
<%
dim SQL
dim page
dim inhalt
dim anfang
dim ende
dim out
dim linie
dim i

page = "" & request.querystring("page")

if page = "" or not isnumeric(page) then
   page = 0
else
   page = cint(page)
end if

SQL="SELECT * FROM content WHERE contentID=25"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open SQL, db, 3, 3

inhalt = rs("content")

rs.close

anfang = 1
linie = "linie.gif"

'anfang ermitteln
for i = 0 to page * 10 -1' n * anzahl der linien
   if InStr(anfang, inhalt, linie) > 1 then
      anfang = instr(anfang, inhalt, linie) + len(linie)
   end if
next

ende = anfang

'ende ermitteln
for i = page * 10 to (page + 1) * 10 ' n * anzahl der linien
   if instr(ende, inhalt, linie) > 0 then
      ende = instr(ende, inhalt, linie) + len(linie)
   end if
next

out = mid(inhalt, anfang, ende - anfang)
page = page + 1

response.write out
response.write "<br /><br /><br />"
%>

<a href="test3.asp?page=<% =page %>" target="_self">&raquo; nächste seite</a>


so funzt es. problem war dass vb nicht 0 sondern 1 als startindex hat. zudem ist er auch bei der ersten seite durch die erste for schleife gelaufen. kleiner gedanklicher fehler.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Mo 07.08.2006 10:59
Titel

Antworten mit Zitat Zum Seitenanfang

hallo rob,

dank dir. es funktioniert.

ich mußte nur beim deklarieren von der var linie das ende des Image Tags noch anfügen

Code:


Linie = "linie.gif" & Chr(34) & "/>"



sonst hat er jeweils die letzte linie nicht angezeigt, wie auch das ende des tags auf der nächsten seite.
wenn ich bei folgendem

Code:

out = mid(inhalt, anfang, ende - anfang)


die rechnung durch

Code:

out = mid(inhalt, anfang, ende - anfang + 1) ' plus eins erweitert


habe, hat er zwar die letzte linie angezeigt, jedoch auf der nächsten seite den ersten eintrag 2 mal wiederholt.

jetzt klappt es, danke!

jetzt muß ich nur angeben, das wenn keine linie mehr vorhanden ist, auch kein Link mehr angezeigt wird.

gruß

kash
  View user's profile Private Nachricht senden
 
Ähnliche Themen RegExp String zwischen 2 Zeichen in einem String entfernen
Flash-XML Problem mit Text auslesen!
director-problem beim auslesen einer xml
[AS] String als Variable
[PHP] String -> date
[PHP/MySQL] String in SQL-Abfrage ?! wie ??
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.