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


Problem med strängar som bryts vid Null

Postades av 2004-08-27 07:12:03 - Kenneth Hedman, i forum vb.net, Tråden har 1 Kommentarer och lästs av 628 personer

Jag försöker sätta mig in i DotNet och har dykt på ett problem med strängar som bryts vid null.
Jag håller på med en inifil hanterare och lyckas inte få ReadSection i nedanstående kod att returnera
alla sections i inifilen som ser ut så här:
<code>
[SETTINGS]
1
2
3
</code>
Den returnerar bara "1", I VB 6.0 så skulle den ha returnerat en sträng med 1 & chr(0) & 2 & chr(0) & 3 & chr(0)
Är det någon som har en förklaring/lösning ?
Jag undrar också ifall det finns något bättre sätt att skapa en buffer att skicka in i api anrop ?
typ som i vb 6.0 String * 255

<code>
Public Class Ini
Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Private Declare Ansi Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Private Declare Ansi Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
Private Declare Ansi Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
Private ConfigObject As String

Public Sub New(ByVal strPathFileName As String)
ConfigObject = strPathFileName
End Sub

'reads ini string
Public Function Read(ByVal Section As String, ByVal Key As String, Optional ByVal strDefault As String = "") As String
Dim Retval As New System.Text.StringBuilder(256), v As Integer
v = GetPrivateProfileString(Section, Key, strDefault, Retval, Retval.Capacity, ConfigObject)
If v > 0 Then Read = Left(Retval.ToString, v)
End Function

'reads ini section
Public Function ReadSection(ByVal Section As String) As String
Dim Retval As New System.Text.StringBuilder(4096), v As Integer
v = GetPrivateProfileSection(Section, Retval, Retval.Capacity, ConfigObject)
If v > 0 Then ReadSection = Left(Retval.ToString, v)
End Function

'writes ini
Public Sub Save(ByVal Section As String, ByVal Key As String, ByVal Value As String)
WritePrivateProfileString(Section, Key, Value, ConfigObject)
End Sub

'writes ini section
Public Sub SaveSection(ByVal Section As String, ByVal Value As String)
WritePrivateProfileSection(Section, Value, ConfigObject)
End Sub

'removes ini section
Public Sub RemoveSection(ByVal Section As String)
WritePrivateProfileString(Section, vbNullString, "", ConfigObject)
End Sub

'Example
'MessageBox.Show(myIni.ReadSection("SETTINGS"), "Varde", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Class

</code>


Svara

Sv: Problem med strängar som bryts vid Null

Postades av 2004-08-27 08:42:33 - Kenneth Hedman

Hittade en lösning

ändrade från System.Text.StringBuilder till String

och i funktionen som krånglade
.PadLeft gjorde susen


<code>
Public Function ReadSection(ByVal Section As String) As String
Dim v As Integer, strTemp As String = ""
strTemp = strTemp.PadLeft(4096, Chr(0))
v = GetPrivateProfileSection(Section, strTemp, 4096, ConfigObject)
If v > 0 Then ReadSection = Left(strTemp.Replace(Chr(0), ""), v)
End Function
</code>


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

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 570 722
27 958
271 751
201
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