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


Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-17 13:27:04 - Jesper Liedberg, i forum visual basic - allmänt, Tråden har 12 Kommentarer och lästs av 1024 personer

Hejsan

Här kommer en fråga som jag har funderat över ett tag.

Om man har en textfil som består av ett antal rader som kan se ut ungefär så här:

XXX;XXXXXX;XXXXXXXXXXXXX;XXX;XXXX;

Om man vill lägga till och byta ut tecken så att filen får detta utseende:

NR1;xxx;NR2;XXXXXX;NR3;XXXXXXXXXXXXX;NR4;XXX;NR5;XXXX;SLUT

Hur gör man?

Har suttit och tittat på Find och Replace men inte riktigt kunnat förstå hur man ska kunna åstadkomma detta. Finns det andra än dessa man bör använda? Ska man läsa in filen tecken för tecken eller går det att läsa in rad för rad?

Tacksam för svar

Jesse


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-17 14:07:03 - Sven Åke Persson

Det ser enkelt ut eftersom du har (; tecknet) som separator, då kan du använd Split

Dim tmpArray() As String
tmpArray = Split(strIn,";")
Nu har du de olika texterna i olika fack på tmpArray som du kan trolla med och skicka vidare.


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-17 20:23:07 - Per Karlsson

När du sedan har ändrat texterna i arrayen så kan du slå ihop dem till en sträng igen med Join. Implementationen blir då ytterst enkel. Med denna lösning bör du naturligtvis läsa in filen rad för rad.


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-17 20:59:48 - Andreas Hillqvist

RegExp är nog passande:
<code>
Function AddData(Value, nr1, nr2, nr3, nr4, nr5)
Dim RegExp As RegExp
Set RegExp = New RegExp
RegExp.Global = False
RegExp.Pattern = "(.*);(.*);(.*);(.*);(.*);"
AddData = RegExp.Replace(Value, nr1 & ";$1;" & nr2 & ";$2;" & nr3 & ";$3;" & nr4 & ";$4;" & nr5 & ";$5;SLUT ")
End Function
</code>
Eller:
<code>
Function FormatData(Value)
Dim RegExp As RegExp
Set RegExp = New RegExp
RegExp.Global = False
RegExp.Pattern = "(.*);(.*);(.*);(.*);(.*);"
FormatData = RegExp.Replace(Value, "NR1;$1;NR2;$2;NR3;$3;NR4;$4;NR5;$5;SLUT ")
End Function
</code>
Dett framkommer inte om NR1, NR2, osv är data eller ettiketter.


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-18 08:35:44 - Jesper Liedberg

Tackar för era svar. Uppskattas otroligt mycket. Ska se om jag kan få till det. Återkommer med beröm när jag fått det att fungera.

Jesse


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-18 11:18:03 - Jesper Liedberg

Hej igen.

Försökte få RegExp att fungera men förstod inte hur det skulle gå till.
Det blev så här till slut.

<Code>
nFile3 = FreeFile
Open ActiveWorkbook.Path & "\" & sFilename For Input As #nFile3
nFile4 = FreeFile
Open ActiveWorkbook.Path & "\" & "Nyfil.txt" For Output As #nFile4
Do Until EOF(nFile3)
Line Input #nFile3, strIn
tmpArray = Split(strIn, ";")
sTmp = ("H1;" + tmpArray(0) & ";H2;" & tmpArray(1) & ";H3;" & tmpArray(2) & ";H4;" & tmpArray(3) & ";H5;" & tmpArray(4) & ";H6;" & tmpArray(5) & ";H7;" & tmpArray(6) & ";CR")
Print #nFile4, sTmp
Loop
Close #nFile3
Close #nFile4
Kill ActiveWorkbook.Path & "\" & sFilename
Name ActiveWorkbook.Path & "\" & "Nyfil.txt" As ActiveWorkbook.Path & "\" & sFilename

End Sub

</Code>

Det fungerar åtminstone. Ska försöka med lite bättre kod senare.

Tackar för all hjälp

Jesse


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-18 14:01:06 - Sven Åke Persson

Det ser bra ut. Den gode Andreas glömde att skriva för att få Regular Expression att fungera
måste du sätta Reference till Microsoft VbScript Regular Expression 5.5

För att vara lite proffsig kan du använd Join när du möblerat om i tmpArray.

Då får du en string som innehåller alla orden med ett (space) mellan orden. Gör Replace(strIn," ",";")
Så här skulle du kunna skriva innan du kör Out
outStr = Replace(Join(tmpArray)," ",";")


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-18 14:22:46 - Per Karlsson

Join-funktionen låter en ange vilken "delimiter" man ska använda. Så man kan skriva så här:
<CODE>
outStr = Join(tmpArray, ";")
</CODE>

/Pelle


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-18 15:14:10 - Jesper Liedberg

Ok, tackar. Ska prova.

Jesse


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-18 15:57:18 - Sven Åke Persson

>outStr = Join(tmpArray, ";")

Ahaaaaaa så smart , har aldrig användt Join Tack

>tmpArray(6) & ";CR") det här blir jag lite fundersam på.
Varför lägger du till CR menar du vbCrLf ?


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-21 08:22:04 - Jesper Liedberg

Hejsan

Tänkte köra denna fil mot stordatormiljön. Där använder företaget "CR" som radavslut.
Skumt men sant.

Det fungerar bra med Join, klockrent med andra ord.

Tack för all hjälp jag har fått.
Måste tillägga att detta är det bästa forumet jag sett. Många trevliga och hjälpsamma människor.
Tack igen

Jesse


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-23 14:04:45 - Andreas Hillqvist

Med RegExp skall det se ut något sånjt här:
<code>
Dim strIn as String
Dim strOut as String
Dim nFile3 as Long
Dim nFile4 as Long
Dim RegExp As RegExp

Set RegExp = New RegExp
RegExp.Global = False
RegExp.Pattern = "(.*);(.*);(.*);(.*);(.*);(.*);(.*)"

nFile3 = FreeFile()
Open ActiveWorkbook.Path & "\" & sFilename For Input As #nFile3

nFile4 = FreeFile()
Open ActiveWorkbook.Path & "\" & "Nyfil.txt" For Output As #nFile4

Do Until EOF(nFile3)
Line Input #nFile3, strIn
strOut = RegExp.Replace(strIn, "H1;$1;H2;$2;H3;$3;H4;$4;H5;$5;H6;$6;H7;$7;CR")
Print #nFile4, sTmp
Loop

Close #nFile3
Close #nFile4

Kill ActiveWorkbook.Path & "\" & sFilename
Name ActiveWorkbook.Path & "\" & "Nyfil.txt" As ActiveWorkbook.Path & "\" & sFilename

End Sub
</code>

Som Sven säger så måste du lägga in en referens till biblioteket RegExp objektet ligger i.


Svara

Sv: Byta ut och lägga till tecken i textfil ?

Postades av 2004-06-23 15:39:57 - Sven Åke Persson

>Som Sven säger så måste du lägga in en referens till biblioteket RegExp objektet ligger i.

Och !!! du måste bifoga detta bibliotek om du vill köra på en främmande dator !


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 707
27 958
271 751
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