Hejsan <code> Tackar för det snabba svaret, tyvärr var det inte riktigt vad jag funderade på. Om vi säger så här. <(t ex. position 5, 35, 99 osv) Detta låter precis som det jag var ute efter. Det är som sagt på bestämda positioner som kommatecknen ska in. Ska prova lite och se om jag får till det. Oki på det , skall "skruva" ihop ett förslag till dig,därför att jag tycker det är roligt Ok har funderat ett tag och kom fram till att det bästa är att kopiera den Stämmer det verkligen Sven? Jag har iofs inte testat men rent logiskt känns det som att man borde börja infoga från höger i strängen. Detta då en insert ifrån vänster gör strängen ett tecken längre innan man ska infoga nästa tecken, vilket borde göra att tecknet förskjuts ett steg åt vänster i förhållande till den önskade posititonen... mmm. Du har rätt jag fick addera två tecken positioner på den sista som egentligen Tänkte en gång till.Funktionen är Ok men man måste tänka på Hejsan, ser att det brottas med problemet. Varför inte använda den Funktion Insert jag skruvade ihop ? enl ex ovan. Hej, jo jag såg vad du skrev och har suttit och funderat. Det kom lite imellan men har nu börjat knåpa på den funktionen du visade. Ska se om jag får den att fungera. Hej, jo jag såg vad du skrev och har suttit och funderat. Det kom lite imellan men har nu börjat knåpa på den funktionen du visade. Ska se om jag får den att fungera.Infoga tecken i en sträng
Undrar om det finns någon funktion som kan infoga tecken i en sträng. Med infoga menar jag inte byta ut. Säg att man har en sträng som består av en lång rad olika tecken, och man vill infoga t ex. komman på bestämda platser. Hur kan man göra det på ett enkelt (om det nu finns) sätt.
Tacksam för svar
JesseSv: Infoga tecken i en sträng
Dim testStr As String
Dim nyStr As String
testStr = "SvenPon är en klippa på Vb"
MsgBox testStr
nyStr = Replace(testStr, "klippa", "är hyffsat bra på Vb")
MsgBox nyStr
</code>Sv: Infoga tecken i en sträng
Jag har en sträng "HejjagheterJesper", kan vara längre och innehålla text eller annat. Strängen innehåller inga blanksteg. Jag vill kunna placera kommatecken på bestämda positioner (t ex. position 5, 35, 99 osv) så att strängen blir så här "Hej,jag,heter,Jesper". Vill även kunna infoga blanksteg på bestämda positioner.
Finns det någon lösning på detta?
JesseSv: Infoga tecken i en sträng
Om det alltid är på dessa positioner så är det ganska enkelt med Left$(.........,....)
Dvs bygger om ny sträng genom att skifta nyStr oldStr med Left$
Sen kan du ju alltid öppna NotePad från VB och editera där som du vill och Klipp o Klistra via VB.Sv: Infoga tecken i en sträng
Tackar
JesseSv: Infoga tecken i en sträng
med lite hjärngymnastik. Kommer under denna helg.
Kommer texten från en txtfil ? eller mellanlagrar du i en TextBox ?
Ha det för det tänker jag ha.Sv:Infoga tecken i en sträng
Funktion som finns i Delphi och heter Insert.Du får köra denna funktion i en loop
om du vill Inserta på flera positioner.
<code>
Option Explicit
Private Sub Command1_Click()
Dim StrInp As String 'Strängen som skall behandlas
'Vid flera infoga börja från höger Tack *Emma*
StrInp = "Undraromdetfinnsnågonfunktionsomkaninfogateckeniensträng"
StrInp = Insert(" ", StrInp, 51) 'infoga ett space på pos 51
StrInp = Insert(", ", StrInp, 30) 'infoga komma på pos 30
StrInp = Insert(" ", StrInp, 9) 'infoga ett space på pos 9
StrInp = Insert(" Sven ", StrInp, 7) 'infoga " Sven" på pos 7
Label1.Caption = StrInp
End Sub
Public Function Insert(ByVal StrToIns As String, ByVal oldStr As String, _
ByVal pos As Long) As String
Dim LeftStr As String,RightStr As String
LeftStr = Left$(oldStr, pos - 1) & StrToIns
RightStr = Mid$(oldStr, pos)
Insert = LeftStr & RightStr
End Function
</code>Sv: Infoga tecken i en sträng
/Emma - spånar liteSv: Infoga tecken i en sträng
var position 51 från början, blev nu position 53.
Tänkte från början bara att man skulle infoga en gång.Insertar man längre meningar blir det
stökigt att göra det från vänster om det skall komma fler efter.
Skall fixa till det Tack.
Edit : Har ändrat orginalet ovanSv: Infoga tecken i en sträng
att infoga från höger om man har flera positioner.
<code>
Private Sub Command1_Click()
Dim StrInp As String 'Strängen som skall behandlas
StrInp = "Undraromdetfinnsnågonfunktionsomkaninfogateckeniensträng"
StrInp = Insert(" ", StrInp, 51) 'infoga ett space på pos 51
StrInp = Insert(",", StrInp, 30) 'infoga ett komma på pos 30
StrInp = Insert(" ", StrInp, 9) 'infoga ett space på pos 9
Label1.Caption = Insert(" Emma ", StrInp, 7) 'infoga "Emma" på pos 7
End Sub
</code>Sv: Infoga tecken i en sträng
Tackar för era svar och funderingar. Har nu fått det hela att fungera. Koden är inte vacker men den gör sitt jobb. Eftersom raderna i filen har bestämd längd och tecknen ska in på bestämmda positioner fungerar detta. Som ni skrev var det lite jobbigt att hålla reda på positionerna eftersom de förskjuts hela tiden.
<code>
If transKod.Text = "360" Then
sString = Left$(sString, 3) & "," & Right$(sString, Len(sString) - 3)
sString = Left$(sString, 13) & "," & Right$(sString, Len(sString) - 13)
sString = Left$(sString, 24) & "," & Right$(sString, Len(sString) - 24)
sString = Left$(sString, 32) & "," & Right$(sString, Len(sString) - 32)
sString = Left$(sString, 37) & "," & Right$(sString, Len(sString) - 37)
sString = Left$(sString, 39) & "," & Right$(sString, Len(sString) - 39)
sString = Left$(sString, 41) & "," & Right$(sString, Len(sString) - 41)
sString = Left$(sString, 43) & "," & Right$(sString, Len(sString) - 43)
sString = Left$(sString, 45) & "," & Right$(sString, Len(sString) - 45)
sString = Left$(sString, 47) & "," & Right$(sString, Len(sString) - 47)
sString = Left$(sString, 49) & "," & Right$(sString, Len(sString) - 49)
sString = Left$(sString, 51) & "," & Right$(sString, Len(sString) - 51)
sString = Left$(sString, 53) & "," & Right$(sString, Len(sString) - 53)
sString = Left$(sString, 57) & "," & Right$(sString, Len(sString) - 57)
sString = Left$(sString, 59) & "," & Right$(sString, Len(sString) - 59)
sString = Left$(sString, 64) & "," & Right$(sString, Len(sString) - 64)
List2.AddItem (sString)
Else
någonting osv.
</code>
Som sagt, det fungerar. Tänker väl förfina koden senare när man lärt sig lite mer.
Tack igen
JesseSv: Infoga tecken i en sträng
Börja bakifrån i strängen och kör så det ryker .
Ibland funderar man på om man svarar i onödan,den som frågar läser i allafall inte
och läser han/hon så förstår dom inte det geniala ;-) "Margaritas ante porcas"
Ha det LångHelg Nu är han på G ;-)Sv: Infoga tecken i en sträng
Hälsningar
JesseSv: Infoga tecken i en sträng
Hälsningar
Jesse
Edit: Hur tar man bort ett inlägg som blev dubbelpostad, fick lite nätverksproblem så jag trodde inte att den första kom fram.