Страница 1 из 1

Libcurl ошибка 23

Добавлено: 03 Декабрь 2025, 12:51
harry
Добрый день!
Столкнулся с ошибкой 23 при запросе через Libcurl: "Failed writing received data to disk/application (23)|client returned ERROR on write of 8009 bytes"
При этом другие запросы на этот же хост успешно проходят и тот же запрос через curl.exe с выводом в файл так же проходит.
Результирующий файл занимает 300 Кб. Бывали запросы и на большие размеры и проблем не было, а здесь не понятно, что происходит.
Никто не сталкивался ? Как решается ?

Libcurl ошибка 23

Добавлено: 03 Декабрь 2025, 14:02
Дед Пахом
Какие-то проблемы записи в файл очевидно.

Libcurl ошибка 23

Добавлено: 03 Декабрь 2025, 14:31
harry
Вот, понятно было, что связано с записью в файл ) Еще раз проверил и оказалось в имени файла был "/". Заменил на "_" и все заработало!
Спасибо! Иногда, нужен дополнительный пинок )

Libcurl ошибка 23

Добавлено: 05 Декабрь 2025, 10:45
Губин Игорь
У меня для такого есть стандартная функция filename=correctname(filename), которая проверяет корректность имени и заменяет недопустимые символы на допустимые. Использую перед любым открытием файла с "внешним" именем.

Libcurl ошибка 23

Добавлено: 05 Декабрь 2025, 11:28
gopstop2007
Губин Игорь писал(а): 05 Декабрь 2025, 10:45 У меня для такого есть стандартная функция filename=correctname(filename), которая проверяет корректность имени и заменяет недопустимые символы на допустимые. Использую перед любым открытием файла с "внешним" именем.
Интересно, если есть возможность, поделитесь. Заранее спасибо. )

Libcurl ошибка 23

Добавлено: 05 Декабрь 2025, 11:42
Губин Игорь
Она в составе класса c некоторой специфической логикой, вот переделанный, но не оптимизированный вариант

Код: Выделить всё

CorrFileName 	Procedure(InpName)
OutName String(Size(InpName))
I               Long
J               Long
InpChar         String(1)

 Code
    ! Уборка недопустимых символов
    J = Len(Clip(InpName))
    OutName = ''
    Loop I = 1 To J
        IF InString(InpName[ I ],'"\/:*?<>|') = 0 Then
            OutName[I] = InpName[I]
        Else
            OutName[I] = '_'
        End
    End

     Return(Clip(Outname))