12. april 2009 - 19:06Der er
4 kommentarer og 1 løsning
Check om string er = navn på control
Hej
Jeg har en skabalon i csv-format, jeg indlæser i et flerdimensionelt array, derefter ønsker jeg at checke om en af forkomsterne i kolonne 2 er navnet på en kontrol i formen. Herefter skal skabalonen gemmes som en anden csv-fil, hvor control-navnene er erstattet af værdien fra før omtalte control. csv-filen kan bestå af mange tusind linier.
Eks. Skabalon
Linie 1; 25 Linie 2; txtText1.text Linie 3; 254 Linie 4; Linietekst
Outputfilen skal se sådan ud:
Linie 1; 25 Linie 2; Tekst fra kontrol Linie 3: 254 Linie 4: Linietekst
Jeg har koden:
Sub Hent(strFilnavn2 As String)
Dim strContainer2(6000, 2) As String Dim strSave As String Dim AntalNavne As Integer Dim filnavn As String Dim strContainer3() As String Dim Navn(6000) As String
'Nulstiller tæller AntalNavne = 0
'Hent et frit filnummer Let FilNummer = FreeFile
'Sæt bibliotek med fil der skal læses Let filnavn = App.Path & strFilnavn2
'Åben [sti til fil] som binær Open filnavn For Binary As #FilNummer
'Læs til slutningen af filen 'Tæl en op, hver gang løkken køres 'Læs første line i filen Do While EOF(FilNummer) = False
Vil det sige at CSV filen, bruger 4 linier til hvert "stykke" data? og du gerne vil loope igennem det og altid rette anden variable i anden linie af hvert "stykke"?
Hvis jeg har forstået det rigtigt, som jeg beskriver i #1 Så ville følgende script kunne udføre den ønskede effekt :)
Dim FSO, readfile, writefile Dim arrText
Set FSO = CreateObject("Scripting.FileSystemObject") Set readfile = FSO.OpenTextFile("c:\somefile1.csv", 1, false) Set writefile = FSO.CreateTextFile("c:\somefile2.csv", true)
Do While Not readfile.AtEndOfStream writefile.WriteLine(readfile.ReadLine) arrText = Split(readfile.ReadLine, ";") writefile.WriteLine(arrText(0) & "; " & "Tekst fra kontrol") writefile.WriteLine(readfile.ReadLine) writefile.WriteLine(readfile.ReadLine) Loop
Jeg har mellem 5000 og 7000 linier og op til 300 controller, det er altid i dimension 2 jeg skal se i skabelonen, om strengen er lig en kontrol (f.eks Text1.text), men i hvilken linie der kommer navnet på en kontrol, ved jeg ikke altid. "Linie #" er konstanter der altid skal med over i den gemte fil og i en fast rækkefølge.
Jeg bruger skabelonen for at sikre data kommer ind på det rigtige sted og på grund af mængden af data, er det svært at hårdkode skabelonen
Det er bare et tænkt eksempel, jeg har lavet i #1 post.
#4 Du må undskylde, jeg aldrig vendte tilbage, men det glæder mig du fik løst det selv :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.