2010-07-08 4 views
0

j'essaie de copier la deuxième ligne d'un txt, qui fonctionne grand problème est maintenant j'essaie de faire une instruction if vérifier les txt, est-il quelque chose dans la ligne 2.facile si le problème dans vbscript

Set fso = CreateObject("Scripting.FileSystemObject") 
Set MyFile = fso.CreateTextFile("testfile.txt", True) 
MyFile.WriteLine("" + LastMessage + "") 
MyFile.Close 

rownumber = 0 

file = "testfile.txt" 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set File = fs.OpenTextFile(file , 1, true) 
Do While not file.AtEndOfStream 
    rownumber = rownumber+1 
    row = (file.ReadLine) 
    if rownumber = 2 then 
    new = row 
    msgbox row 
    end if 
    If row = 0 Then 
    msgbox "nothing found" 
    else 
    msgbox "found" 
    end if 
Loop 

Si la ligne = 0 ne fonctionne pas, quelqu'un en a-t-il une idée?

Message d'erreur: Types incompatibles: '[string: ""]'

ligne: Si la ligne = 0 Then

Cordialement, matthias

+0

Que voulez-vous dire par " ne fonctionnera pas"? Avez-vous une erreur? Qu'attendez-vous qu'il se passe? Qu'est-ce qui ne se passe pas? – Oded

+0

il y a l'erreur: Types incompatibles: '[string: ""]' – Sebastian

+0

Deux indices indépendants: 1. Je pense que vous ne pouvez pas utiliser 'new' comme nom de variable puisqu'il s'agit d'un mot-clé. 2. Utilisez l'opérateur '&' pour la concaténation de chaînes, pas '+'. – Philipp

Répondre

2

Vous comparez un chaîne à un nombre - le conten t de row sera une chaîne, donc il y a une incompatibilité de type en la comparant à un nombre.

Essayez ceci pour savoir si la ligne contient le numéro 0:

If row = "0" Then 

Si vous voulez savoir si la ligne est vide, essayez ceci:

If row = "" Then 
+0

merci Si row = "0" Alors était le bon :-D – Sebastian

2

row est une chaîne parce que la méthode renvoie ReadLine un string. Probablement vous voulez dire If row = "" ou If Len(row) = 0 à la place.

Voici une version améliorée de vos scripts:

  • Script pour l'écriture:

    Set FSO = CreateObject("Scripting.FileSystemObject") 
    Set File = FSO.CreateTextFile("testfile.txt", True) 
    File.WriteLine LastMessage ' Why "" + ... + ""? 
    File.Close 
    
  • Script pour la lecture:

    RowNumber = 0 
    FileName = "testfile.txt" 
    Set FSO = CreateObject("Scripting.FileSystemObject") 
    Set File = FSO.OpenTextFile(FileName, 1, True) 
    Do Until File.AtEndOfStream 
        RowNumber = RowNumber + 1 
        Row = File.ReadLine 
        If RowNumber = 2 Then 
         NewRow = Row ' NewRow is nowhere used 
         MsgBox Row 
        End If 
        If Len(Row) = 0 Then 
         MsgBox "nothing found" 
        Else 
         MsgBox "found" 
        End If 
    Loop