[ create a new paste ] login | about

Link: http://codepad.org/I6zkckyk    [ raw code | fork ]

C++, pasted on Jan 10:
#include header.h

//Hier wären normalerweise die namespaces

template <>
	bool save(const char varName[], char &var)
	{
		bool Schleife1 = 1,
			Schleife2 = 1,
			Schleife4 = 1,
			rueckgabe = 0;
		char buffer[2] = "\0",
			buffer2[2] = "\0",
			textbuffer[F_MAX_NAME_SIZE] = "\0",
			textbuffer2[F_BUFFER_SIZE] = "\0";
		int count = 0;
		fpos_t pos;
		FILE *f;

		if (fopen_s(&f, "data.txt", "r+"))
		{
			fopen_s(&f, "data.txt", "w");
			fclose(f);
			fopen_s(&f, "data.txt", "r+");
			fseek(f, F_FILESTART, SEEK_SET);
			fprintf(f, "\n?%%?");
		}

		fseek(f, F_FILESTART, SEEK_SET);

		while (Schleife1)
		{
			Schleife2 = 1;
			fscanf_s(f, "%c", &buffer[0]);
			if (buffer[0] == '\n')
			{
				fscanf_s(f, "%c", &buffer[0]);
				if (buffer[0] == '!')
				{
					fscanf_s(f, "%c", &buffer[0]);
					if (buffer[0] == '%')
					{
						fscanf_s(f, "%c", &buffer[0]);
						if (buffer[0] == '%')
						{
							fscanf_s(f, "%c", &buffer[0]);
							if (buffer[0] == '!')
							{
								while (Schleife2)
								{
									fscanf_s(f, "%c", &buffer[0]);
									if (buffer[0] == '!')
									{
										fscanf_s(f, "%c", &buffer[0]);
										if (buffer[0] == '%')
										{
											fscanf_s(f, "%c", &buffer[0]);
											if (buffer[0] == '!')
											{
												if (!strcmp(varName, textbuffer))
												{
													fseek(f, 0, SEEK_CUR);
													fgetpos(f, &pos);

													memset(textbuffer2, 0, F_BUFFER_SIZE);
													sprintf_s(textbuffer2, F_BUFFER_SIZE, "%c\0", var);
													fflush(f);

													fsetpos(f, &pos);
													F_autoRemoveContent(f);

													fopen_s(&f, "data.txt", "r+");   //Neu öffnen wegen F_cleanup
													fseek(f, 0, SEEK_SET);

													fsetpos(f, &pos);
													F_insert(f, textbuffer2);

													memset(textbuffer, 0, sizeof(textbuffer) / sizeof(int));
													rueckgabe = 1;
													Schleife2 = 0;
													Schleife1 = 0;
												}
												else
												{
													memset(textbuffer, 0, sizeof(textbuffer) / sizeof(int));
												}
												Schleife2 = 0;
											}
											else
											{
												strcat_s(textbuffer, "!%%");
												strcat_s(textbuffer, buffer);
											}
										}
										else
										{
											strcat_s(textbuffer, "!");
											strcat_s(textbuffer, buffer);
										}
									}
									else
									{
										strcat_s(textbuffer, buffer);
									}
								}
							}
							else
							{
								fseek(f, -4, SEEK_CUR);
							}
						}
						else
						{
							fseek(f, -3, SEEK_CUR);
						}
					}
					else
					{
						fseek(f, -2, SEEK_CUR);
					}
				}
				else
				{
					fseek(f, -1, SEEK_CUR);
				}
			}
			else
			{
				if (buffer[0] == '?')
				{
					fscanf_s(f, "%c", &buffer[0]);
					if (buffer[0] == '%')
					{
						fscanf_s(f, "%c", &buffer[0]);
						if (buffer[0] == '?')
						{
							if (rueckgabe != 1)
							{
								fseek(f, -3, SEEK_CUR);
								fprintf(f, "!%%%%!%s!%%!%c\n?%%?", varName, var);
							}
							Schleife1 = 0;
						}
					}
				}
			}
		}
		fclose(f);
		return rueckgabe;
	}


Create a new paste based on this one


Comments: