Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Мне надо удалить пробельчики


Автор: Voldemar2004 24.3.2005, 16:08
Короче так: есть путь к файлу: C:\folder\folder folder\file1 1.exe

надо удалить пробелы в названии файла чтоб получилось file11.exe например
и удалить пробелы в названиях папок: чтоб получилось вот так
C:\folder\folderfolder\file11.exe

ну короче я вот так сначала сделал:

Код

Str = Text1.Text
    Do
    Ln = Len(Str)
    Str = Replace(Str, " ", "")
    Loop While Len(Str) <> Ln
Text2.Text = Str


В Text1.Text название с пробелами
в Text2.Text без пробелов

оператор переименования файла

Код

Name OldFileName as NewFileName


мне лишь надо чтоб удалялись пробелы в названиях и папок и файлов.

Автор: ~FoX~ 24.3.2005, 16:19
Код

 a = Split(Edit1.Text, " ")
 For i = 0 To UBound(a)
    k = k + a(i)
  Next i
  Edit2.Text = k

Автор: cardinal 24.3.2005, 16:40
Что то я разницы между
Код

Str = Text1.Text
    Do
    Ln = Len(Str)
    Str = Replace(Str, " ", "")
    Loop While Len(Str) <> Ln
Text2.Text = Str

и
Код

a = Split(Edit1.Text, " ")
 For i = 0 To UBound(a)
    k = k + a(i)
  Next i
  Edit2.Text = k

не понимаю?
Единственное, что в первом варианте вместо Str надо что-нибудь другое написать (т.к. Str уже забито VB)...

Автор: Akina 24.3.2005, 16:44
Код
Text2.Text=Join(Split(Text1.Text),"")

Автор: boevik 24.3.2005, 16:48
Одной команды Replace хватит, без всяких loop-ов
Код

Str = Replace(Str, " ", "")

Автор: Voldemar2004 24.3.2005, 17:31
Да, глупость я сделал. У меня есть код для удаления пробелов, мне надо чтоб переименовалась папка с файлом из например C:\folder folder\file 1 1.exe
в C:\folderfolder\file11.exe опять же с файлом например file 1 1.exe. Вот и все.

Добавлено @ 17:31
Ну просто как Name FileName as FileName Для папки. smile

Автор: Voldemar2004 24.3.2005, 17:47
И еще: потом в вместо C:\folderfolder\file.exe надо переименовать расширение и после точки написать три буквы C:\folderfolder\file.txt например.

Автор: Vidocq 25.3.2005, 03:01
Voldemar2004

Код


Function ChangeExt(String Filename)
Dim astrWords() as String
Dim char as String
astrWords = Split(Filename) 'разбиваем строку на массив строк

for i=LBound(astrWords) To UBound(astrWords)
     NewFileName =  NewFileName & astrWords(i)
     If astrWords(i)="." Then
          NewFileName = NewFileName & "txt"
          resume Next  
     End If
Next

ChangeExt = NewFileName 
End Function

Добавлено @ 03:01
Voldemar2004

Код


Function ChangeExt(String Filename)
Dim astrWords() as String
Dim char as String
astrWords = Split(Filename) 'разбиваем строку на массив строк

for i=LBound(astrWords) To UBound(astrWords)
     NewFileName =  NewFileName & astrWords(i)
     If astrWords(i)="." Then
          NewFileName = NewFileName & "txt"
          resume Next  
     End If
Next

ChangeExt = NewFileName 
End Function


Писал навскидку, так что протести и исправь ошибки smile

Автор: Voldemar2004 25.3.2005, 17:19
по-моему вот так должно быть:

Код

Function ChangeExt(Filename As String).


В справочнике по строковым функциям я нашел:

Left(СтроковоеВыражение,КоличествоСимволов) - возвращает строку, извелеченную из строки-параметра, начиная от начала строки, и содержащую заданное количество символов:

Код

Private Sub Command1_Click()
Dim Str As String, Ln As String

Str = Text1.Text
    Do
        Ln = Len(Str)
        Str = Replace(Str, " ", "")
    Loop While Len(Str) <> Ln
    
A = Left(Text1.Text, Ln - 3)
Text2.Text = A + "txt"

End Sub


и обходимся без своей функции.

Автор: Vidocq 26.3.2005, 13:54
Voldemar2004
Так что, зафурыкало? smile

Автор: Voldemar2004 26.3.2005, 20:55
Ну, да. Так вот че еще за ерунда получается:

Код

Name "c:\FOLDER\Folder Folder\file.ext" as "c:\FOLDER\FolderFolder\file1.ext"


не хочет работать:

сначала

Код

Name "c:\FOLDER\Folder Folder" As "c:\FOLDER\FolderFolder"


ну а потом

Код

Name "c:\FOLDER\FolderFolder\file.ext" as "c:\FOLDER\FolderFolder\file1.ext"



т.е. функцию свою придумывать или есть еще-что-то?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)