Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Komprimera en sträng

Postades av 2002-07-25 12:13:32 - Tommy Winberg, i forum vb.net, Tråden har 4 Kommentarer och lästs av 906 personer

Någon har en kodsnutt eller länk till info om hur man kan komprimera och packa upp t ex en sträng (dvs ej en hel fil som zip).

/Tommy


Svara

Sv: Komprimera en sträng

Postades av 2002-07-25 16:00:41 - Mattias Sjögren

SharpZipLib klarar att komprimera strömmar i minnet om jag inte minns fel.

http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp


MS


Svara

Sv: Komprimera en sträng

Postades av 2002-07-25 16:22:39 - Fredrik Salomonsson


Intressant...
Men vill ni förklara varför man vill göra det??

Undrar fredda


Svara

Sv: Komprimera en sträng

Postades av 2002-07-27 01:09:27 - Pontus Wång

Här är en snutt kod (inte så snygg, men den funkar) som utför en LZW-komprimering (samma teknik som i GIF-bilder). LZW är fri att använda i ickekomersiella syften.

<code>
Public Class clsPack
Private sDictionary() As String = Nothing
Private Function DictionaryMatch(ByVal s As String) As Integer
DictionaryMatch = 0
Dim i As Integer
For i = 0 To Me.sDictionary.Length - 1
If sDictionary(i) = s Then
DictionaryMatch = i
Exit Function
End If
Next i
End Function
Private Sub AddToDictionary(ByVal s As String, ByVal Position As Integer)
If Position > 4096 Then
ReDim Preserve sDictionary(Position)
End If
sDictionary(Position) = s
End Sub
Public Function Pack(ByVal UnpackedString As String) As Array
If UnpackedString.Length = 0 Then
Return Nothing
End If
Dim sWorkingWord As String = Nothing
Dim sCurrentChar As String = Nothing
Dim aResult() As Integer
Dim nDictionaryCounter As Integer
Dim i As Integer
Dim j As Integer
ReDim sDictionary(4096)
For nDictionaryCounter = 0 To 255
sDictionary(nDictionaryCounter) = Chr(nDictionaryCounter)
Next nDictionaryCounter
For i = 1 To UnpackedString.Length
sCurrentChar = Mid(UnpackedString, i, 1)
If DictionaryMatch(sWorkingWord & sCurrentChar) Then
sWorkingWord = sWorkingWord & sCurrentChar
Else
ReDim Preserve aResult(j)
aResult(j) = DictionaryMatch(sWorkingWord)
j = j + 1
AddToDictionary(sWorkingWord & sCurrentChar, nDictionaryCounter)
nDictionaryCounter = nDictionaryCounter + 1
sWorkingWord = sCurrentChar
End If
Next i
ReDim Preserve aResult(j)
aResult(j) = DictionaryMatch(sWorkingWord)
Return aResult
End Function
Public Function UnPack(ByVal PackedString As Array) As String
Dim i As Integer
Dim sWorkingWord As String = Nothing
Dim sCurrentChar As String = Nothing
Dim sResult As String = Nothing
Dim sLastWord As String
Dim sStack As String
Dim nDictionaryCounter As Integer
ReDim sDictionary(4096)
For nDictionaryCounter = 0 To 255
sDictionary(nDictionaryCounter) = Chr(nDictionaryCounter)
Next nDictionaryCounter
sWorkingWord = sDictionary(PackedString(0))
sResult = sResult & sWorkingWord
For i = 1 To PackedString.Length - 1
sLastWord = sWorkingWord
sWorkingWord = sDictionary(PackedString(i))
If DictionaryMatch(sWorkingWord) Then
sResult = sResult & sWorkingWord
sStack = sLastWord
sCurrentChar = Microsoft.VisualBasic.Left(sWorkingWord, 1)
AddToDictionary(sStack & sCurrentChar, nDictionaryCounter)
nDictionaryCounter = nDictionaryCounter + 1
Else
sStack = sLastWord
sCurrentChar = Microsoft.VisualBasic.Left(sLastWord, 1)
sResult = sResult & sStack & sCurrentChar
AddToDictionary(sStack & sCurrentChar, nDictionaryCounter)
nDictionaryCounter = nDictionaryCounter + 1
End If
Next i
Return sResult
End Function
End Class
</code>


Svara

Sv: Komprimera en sträng

Postades av 2002-07-27 22:50:19 - Tommy Winberg

Guld, tack. /Tommy


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 158
27 952
271 704
740
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies