Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

belirli bir karakterden sonrasını ... yapmak

Konu, 'ASP' kısmında escape_lea tarafından paylaşıldı.

  1. escape_lea

    escape_lea Üye

    Kayıt:
    25 Şubat 2008
    Mesajlar:
    67
    Beğenilen Mesajlar:
    1
    Arkadaşlar yazdığım bir sistem için, database den okuduğum veriyi ekrana yazdırıyorum ve db deki tüm metni yazıyor. peki ben bu metinin sadece ilk 200 karakterini okumak istersem nasıl bir kod olmalı?
     
  2. Cihan Yakar

    Cihan Yakar Daimi Üye

    Kayıt:
    8 Temmuz 2003
    Mesajlar:
    5,888
    Beğenilen Mesajlar:
    1
    Şehir:
    Ankara
    ms access ya da mssql kullanıyorsan
    SELECT LEFT(METIN,200) FROM yazilar WHERE id=1
    şeklinde sorgu yapabilirsin.

    sorgunu normal tutup asp içerisinde de LEFT fonksiyonunu kullnabilirsin ama sorgudan kullanman performans açısından daha iyi olacaktır.
     
  3. escape_lea

    escape_lea Üye

    Kayıt:
    25 Şubat 2008
    Mesajlar:
    67
    Beğenilen Mesajlar:
    1
    Teşekkürler, işime yaradı. sagolasın.
     
  4. merakli

    merakli Daimi Üye

    Kayıt:
    28 Şubat 2007
    Mesajlar:
    2,004
    Beğenilen Mesajlar:
    1
    Verilerin içerisinde html kodu var ise ya da kelimeyi ortadan kesiyorsa ne olacak?
     
  5. PiYoNASP

    PiYoNASP Aktif Üye

    Kayıt:
    30 Temmuz 2004
    Mesajlar:
    485
    Beğenilen Mesajlar:
    0
    arkadaşın zaten öyle bir derdi yok gibi görünüyor..

    eğer öyle bir derdi olsaydı 2 tane sütun kullanırdı

    1. sutunda ilk 200 ya da ne kadar istiyorsa kullanırdı

    2. sutunda da geri kısmı listeletirdi..


    Örneğin bu olay haber amaçlı yazılan kodlarda olur.. Manşet ya da giriş kısmı ilk sutun, diğerleri ise 2. sutunda yapılabilir..


    Ya da ilk ve ikinci kısım arasına belirli bir ayıraç konulabilir örneğin 111111111 gibi bunu görünce split olayı ayırır, tek sutunda da halledilebilir..

    Başka da aklıma gelmedi.
     
  6. PiYoNASP

    PiYoNASP Aktif Üye

    Kayıt:
    30 Temmuz 2004
    Mesajlar:
    485
    Beğenilen Mesajlar:
    0
    Ama şöyle bir durum da var.. Buradaki gibi soruların üzerine gelince belli karakter veya daha azı gösteriliyor.. Bunu da <br> 'lere göre düzenleyebiliriz ama bu biraz daha komplike görünüyor.. Ama çokta zor değil.
     
  7. Cihan Yakar

    Cihan Yakar Daimi Üye

    Kayıt:
    8 Temmuz 2003
    Mesajlar:
    5,888
    Beğenilen Mesajlar:
    1
    Şehir:
    Ankara
    ASP ile html kodları temizliği

    Kod:
    Function RemoveHTML( strText )
        Dim TAGLIST
        TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;" &_
                  "BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;" &_
                  "COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;" &_
                  "FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG;" &_
                  "INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;" &_
                  "MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT;" &_
                  "PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;" &_
                  "TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;"
    
        Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"
        
        Dim nPos1
        Dim nPos2
        Dim nPos3
        Dim strResult
        Dim strTagName
        Dim bRemove
        Dim bSearchForBlock
        
        nPos1 = InStr(strText, "<")
        Do While nPos1 > 0
            nPos2 = InStr(nPos1 + 1, strText, ">")
            If nPos2 > 0 Then
                strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
    	    strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")
    
                nPos3 = InStr(strTagName, " ")
                If nPos3 > 0 Then
                    strTagName = Left(strTagName, nPos3 - 1)
                End If
                
                If Left(strTagName, 1) = "/" Then
                    strTagName = Mid(strTagName, 2)
                    bSearchForBlock = False
                Else
                    bSearchForBlock = True
                End If
                
                If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
                    bRemove = True
                    If bSearchForBlock Then
                        If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
                            nPos2 = Len(strText)
                            nPos3 = InStr(nPos1 + 1, strText, "</" & strTagName, vbTextCompare)
                            If nPos3 > 0 Then
                                nPos3 = InStr(nPos3 + 1, strText, ">")
                            End If
                            
                            If nPos3 > 0 Then
                                nPos2 = nPos3
                            End If
                        End If
                    End If
                Else
                    bRemove = False
                End If
                
                If bRemove Then
                    strResult = strResult & Left(strText, nPos1 - 1)
                    strText = Mid(strText, nPos2 + 1)
                Else
                    strResult = strResult & Left(strText, nPos1)
                    strText = Mid(strText, nPos1 + 1)
                End If
            Else
                strResult = strResult & strText
                strText = ""
            End If
            
            nPos1 = InStr(strText, "<")
        Loop
        strResult = strResult & strText
        
        RemoveHTML = strResult
    End Function
    
    
    Kod : Konstantin Vasserman
     
  8. merakli

    merakli Daimi Üye

    Kayıt:
    28 Şubat 2007
    Mesajlar:
    2,004
    Beğenilen Mesajlar:
    1
    :) Benim böyle sorunum yok yazmamın sebebi sql ile okutttuğunda böyle bir problem ile karşılaşılabileceğine dikkat çekmekti...

     
  9. anov

    anov erlang programcýsý adayý

    Kayıt:
    29 Nisan 2004
    Mesajlar:
    3,488
    Beğenilen Mesajlar:
    0
    Meslek:
    İnternet Programcısı (Kreatif Design Studio)
    Şehir:
    Mavi kabarcığın içi
    Revlis, Hazır fonksiyonlarda html kaldırmak için çok daha kısa bir kod var. Regexp kullanıyordu.

    ** Mesajı hazır fonksiyonlara kopyaladım.
     
  10. merakli

    merakli Daimi Üye

    Kayıt:
    28 Şubat 2007
    Mesajlar:
    2,004
    Beğenilen Mesajlar:
    1
    Nerede RegExp ile karşılaşırsam aklıma anov geliyor.

    PHP:
     Set anov = New RegExp

    son olarak yukarıda içerisinde html kodu var ise dememin sebebi onlardan nasıl temizleyeceğimiz değildi...

    Örneğin bir haber sitemiz var haberlerin bir özet kısmı birde detay bölümü var diyelim ve bu alanlara WYSIWYG HTML editor ile (http://www.innovastudio.com gibi...) veri girmiş olalım..

    WYSIWYG HTML editor ile girmiş olduğumuz bu verilerde elbette html kodlarıda olacak bu verilerden 100-200 karakter almada ne gibi bir yol izleneceğine dikkat çekmiştim...
     
  11. Caylakkk

    Caylakkk Yeni Üye

    Kayıt:
    18 Haziran 2008
    Mesajlar:
    24
    Beğenilen Mesajlar:
    0
    ben boyle bir sorun yaşamıştım. WYSIWYG HTML editor ile girdiğim verileri extra bir js ile kullanmaya çalıştığımda problem yaşadım. daha sonra html kodlarını temizlemek için codemanya nın verdiği bir fonksion kullandım sorunum halloldu

    PHP:
    <%
    Function 
    HTMLsil(txt)
    Dim txt1txt2
    txt1 
    Intxt(txt"<")
    txt2 Intxt(txt">")
    Do While (
    txt1 <> OR txt2 <> 0
    If 
    txt1 <> AND txt2 <> 0 Then
    txt 
    Left(txtIntxt(txt"<") - 1) & Right(txtLen(txt) - Intxt(txt">"))
    ElseIf 
    txt1 <> AND txt2 0 Then
    txt 
    Replace(txt"<""")
    ElseIf 
    txt1 <> AND txt2 0 Then
    txt 
    Replace(txt">""")
    End If
    txt1 Intxt(txt"<")
    txt2 Intxt(txt">")
    Loop
    HTMLControl 
    Trim(txt)
    End Function
    %> 
     
  12. merakli

    merakli Daimi Üye

    Kayıt:
    28 Şubat 2007
    Mesajlar:
    2,004
    Beğenilen Mesajlar:
    1
    Benim anlamadığım herkes html kodlarını silmekten bahsediyor ben ise html kodlarını silmeden 100-200 karakter almaktan bahsediyorum olması gereken de bu bence....
     
  13. ilker_37

    ilker_37 Yeni Üye

    Kayıt:
    12 Haziran 2008
    Mesajlar:
    22
    Beğenilen Mesajlar:
    0
    Yardım..Acil...

    <% end if%><%=rs("kisahaber")%> bunda nasıl yapabilirim.
     
  14. omergenc

    omergenc Üye

    Kayıt:
    29 Ekim 2008
    Mesajlar:
    41
    Beğenilen Mesajlar:
    0
    <%=left(rs("kisahaber"), 50)%>

    ilk 50 karakteri alabilirsiniz.