powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что то торможу со строками
17 сообщений из 17, страница 1 из 1
Что то торможу со строками
    #34245105
Станислав1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче есть TListView, поочереди все строки записываем в файл. Делаю это вот так
Код: 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.
  AnsiString StrName;
  char Name[ 40 ];

  if (ListView->Items->Count ==  0 )
  { Application->MessageBox("Нет файлов для сохранения", "Сообщение", MB_OK); }

  else
  if (SaveDialog->Execute())
  {
    for (int i =  0 ; i < ListView->Items->Count; i++)
    {
      FILE *fsdFile;
      int j =  0 ;
      fsdFile = fopen(SaveDialog->FileName.c_str(), "a+");

      StrName = ListView->Items->Item[i]->Caption.c_str();
      for(j =  1 ; j <= StrName.Length(); j++)
        Name[j- 1 ] = StrName[j];
      Name[j- 1 ] = '\r';
      Name[j] = '\n';

      fwrite(&Name, strlen(Name),  1 , fsdFile);
      fclose(fsdFile);
    }
  }
Мне нужно чтобы строки последовательно записывались что то вроде такого
BIRD
DOLPH
DUCK
HORSE
LIZARD
ну и так далее
а получается вот так
BIRD

DOLPH

DUCK


HORSE

LIZARD
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245125
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Открывайте как двоичный
fsdFile = fopen(SaveDialog->FileName.c_str(), "ba+");

Или
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
      FILE *fsdFile;
      fsdFile = fopen(SaveDialog->FileName.c_str(), "a+");

for (int i =  0 ; i < ListView->Items->Count; i++)
    {

      StrName = ListView->Items->Item[i]->Caption.c_str();
      StrName += "\n";
      fwrite(&StrName, strlen(StrName),  1 , fsdFile);
    }
      fclose(fsdFile);

...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245144
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо отмечать конец строки.

Name[j+1] = 0;
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245244
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем такие ужасы?

не лучше ли было

fputs(fsdFile,"%s\n",ListView->Items->Item ->Caption.c_str())
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245249
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fputs честно пихает c-string в файл, не добавляя "\n". На экран - добавляет.
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245262
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно - но у меня добавляет.
файл открываю как "a"

в Visual C++ правда, но вряд ли тут фундаментальные рвасхождения.
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245287
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот такое -неужто не добавит?


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#include<stdio.h>

#define LEN  300 

int main()
{
	FILE * f;
	char * s[LEN]={"str1","str2","str3"};

	f=fopen("test.txt","a");

	for(int i= 0 ;i<sizeof(s)/LEN- 1 ;i++)
	{
		fprintf(f,"%s\n",s[i]);
	}

	fclose(f);
	return  0 ;
}
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245298
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
--null--странно - но у меня добавляет.
файл открываю как "a"

в Visual C++ правда, но вряд ли тут фундаментальные рвасхождения.
Может я чего забыл или когда раньше нарвался на ошибку в библиотеке и решил, что это - норма.
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245342
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
	FILE *fp = fopen("qq.txt","w");
	fputs("Line1",fp);
	fputs("Line2",fp);
	fclose(fp);
	return  0 ;
}
В файле: Line1Line2 и ничего лишнего.
У нас разные Visual C
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245356
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин я в начале непроавильно написал. конечно же fprintf !
на автомате вставил. А в исходнике верно написал :-)
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34245377
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но конечно никто не мешает и чередовать

fputs(ListView->Items->Item->Caption.c_str(),fsdFile);
fputs("\n",fsdFile);

все лучше чем с буфером извращаться.
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34246956
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вопрос не по теме, а чего народ так не любит iostream?
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34247058
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо строк

Код: plaintext
1.
2.
3.
4.
 StrName = ListView->Items->Item[i]->Caption.c_str();
      for(j =  1 ; j <= StrName.Length(); j++)
        Name[j- 1 ] = StrName[j];
      Name[j- 1 ] = '\r';
      Name[j] = '\n';

Следует написать строки:
Код: plaintext
1.
strcpy(Name, ListView->Items->Item[i]->Caption.c_str());
strcat(Name, "\r\n");

P.S. Я бы еще размер буфера Name увеличил.
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34247169
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedУ меня вопрос не по теме, а чего народ так не любит iostream?

Ответ не по теме :

Неудобно форматировать ввод/вывод.

ИМХО используя printf & scanf удобнее писать и читать код, чем при использовании manip &,| setiosflags.
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34248310
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedУ меня вопрос не по теме, а чего народ так не любит iostream?амнище в топку
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34250295
Programister0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все вроде просто просто
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    for (int i =  0 ; i < ListView->Items->Count; i++)
    {
      FILE *fsdFile;
      int j =  0 ;
      fsdFile = fopen(SaveDialog->FileName.c_str(), "ba+");  //здесь добавляем b

      AnsiString StrName = (ListView->Items->Item[i]->Caption+"\n").c_str();  //здесь фармируем строку

      fwrite(StrName.c_str(), StrName.Length(),  1 , fsdFile);     
      fclose(fsdFile);
    }
...
Рейтинг: 0 / 0
Что то торможу со строками
    #34250297
Programister0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опс..
Код: plaintext
1.
2.
3.
4.
AnsiString StrName = (ListView->Items->Item[i]->Caption+"\n").c_str();
// (   ).c_str() - это лишнее
AnsiString StrName = ListView->Items->Item[i]->Caption+"\n";

...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что то торможу со строками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]