|
|
|
запись строки в CFile
|
|||
|---|---|---|---|
|
#18+
Я записываю в файл (VC++ 6.0, MFC) строки CString, делаю это так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но при этом в str записывается не "123", а что-то вроде "123ээээЭ". Подскажите пожалуяста, что здесь не так? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 14:21 |
|
||
|
запись строки в CFile
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Здесь не надо GetBuffer вызывать. Write не модифицирует str. А если вызываешь - надо вызывать и ReleaseBuffer. Надо так : Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 15:34 |
|
||
|
запись строки в CFile
|
|||
|---|---|---|---|
|
#18+
Ой, билин, держи Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 15:40 |
|
||
|
запись строки в CFile
|
|||
|---|---|---|---|
|
#18+
То, что вижу...ошипки то бишь.. 1) по поводу освобождения буффера стринга уже прозвучало. 2) Slip....int sz = str.GetLength();.... это Вы длину чаво взяли ? Если прочтёте MSDN повнимательней, то обратите внимание что это не есть длина данных, а длина АЛЛОКИРОВАННОЙ памяти под данные (!) CString может хранить и юникоде - не забывайте ! 3) не стоит делать нью когда читаете. просто сделайте GetBuffer и ReleaseBuffer (если не обшибся в названиях). Ваши проблемы думаю зарыты во втором пункте. удачи Вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 15:57 |
|
||
|
запись строки в CFile
|
|||
|---|---|---|---|
|
#18+
Не путай человека, все GetLength правильно возвращает - длину строки в кол-ве символов. Единстренное, что для MBCS (типа utf-8) он будет возвращать кол-во байт, а не unicode-символов, но я думаю, это здесь ни при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 18:36 |
|
||
|
запись строки в CFile
|
|||
|---|---|---|---|
|
#18+
MasterZivНе путай человека, все GetLength правильно возвращает - длину строки в кол-ве символов..... в том числе и НУЛИ !!! В MSDN... И побыстрее... Это стандартная ошибка программистов...Даже такой контрольный вопрос когда то давали вновь прибывающим... Как тэст на знакомство с одним из часто используемым классом в MFC Если не верите - попробуйте впихнуть в CString байт сто (например пробелов), потом обрезать нулём (ну скажем на втором байтике) и позовите сей метод... Вы удивитесь возвращаемому значению. удачи Вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 14:13 |
|
||
|
запись строки в CFile
|
|||
|---|---|---|---|
|
#18+
Для строковых операций есть CStdioFile. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2005, 01:38 |
|
||
|
запись строки в CFile
|
|||
|---|---|---|---|
|
#18+
kolobok0 MasterZivНе путай человека, все GetLength правильно возвращает - длину строки в кол-ве символов..... в том числе и НУЛИ !!! Ну да, он вернет заполненную длину строки в байтах или символах. Ну и что с этого ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2005, 17:47 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=395&tid=2032911]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 352ms |

| 0 / 0 |
