All pastes #640929 Raw Edit

Untitled

public text v1 · immutable
#640929 ·published 2007-07-31 20:11 UTC
rendered paste body
#include <math.h>
#include <windows.h>
#include <stdio.h>

#define safeAlloc(name, size) \
	char *name = (char* )malloc(size); \
	memset(name, '\0', size);

typedef struct _pointType
{
	double X;
	double Y;
} pointType;

double calcDistance(pointType val1, pointType val2)
{
	return sqrt( pow( ( val2.X - val1.X ), 2 ) + pow( (val2.Y - val1.Y), 2));
}
int main()
{
	int fLen = 0;

	HANDLE hFile = CreateFile(
	    "lol.txt",
	    GENERIC_READ | GENERIC_WRITE,
	    FILE_SHARE_READ | FILE_SHARE_WRITE,
	    NULL,
	    OPEN_EXISTING,
	    FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS,
	    NULL
	);

	if (hFile == INVALID_HANDLE_VALUE)
	{
		printf("Could not open file!");
		getchar();
		return -1;
	}

	fLen = GetFileSize(hFile, NULL);
	safeAlloc(data, fLen + 1);

	DWORD readLength = 0;
	ReadFile(hFile, data, fLen, &readLength, NULL);

	int line1Len = 0;
	int line1Start = 0;
	int line2Len = 0;
	int line2Start = 0;

	for (int x = 0; x < fLen; x++)
	{
		if (data[x] == '\r')
		{
			line1Len = x;
			line2Start = x + 2;
			line2Len = (fLen - 2) - line1Len;
			break;
		}
	}

	int line1Len1 = 0;
	int line1Start1 = 0;
	int line1Len2 = 0;
	int line1Start2 = 0;
	for (int x = 0; x < line1Len; x++)
	{
		if (data[x] == ',')
		{
			line1Len1 = x;
			line1Start2 = x + 1;
			line1Len2 = (line1Len - 1) - line1Len1;
		}
	}


	int line2Len1 = 0;
	int line2Start1 = line2Start;
	int line2Len2 = 0;
	int line2Start2 = 0;

	for (int x = line2Start; x < line2Start + line2Len; x++)
	{
		printf("X: %d\n", x);
		if (data[x] == ',')
		{
			line2Len1 = x;
			line2Start2 = x + 1;
			line2Len2 = (line2Len - 1) - line2Len1;
		}
	}

	safeAlloc(line1X, line1Len1 + 1);
	safeAlloc(line1Y, line1Len2 + 1);

	safeAlloc(line2X, line2Len1 + 1);
	safeAlloc(line2Y, line2Len2 + 1);

	printf("line2Start1: %d\n", line2Start1);
	printf("line2Len1: %d\n", line2Len1);

	for (int x = line1Start1; x < line1Len1; x++)
		line1X[x] = data[x];
	for (int x = line1Start2; x < line1Start2 + line1Len2; x++)
		line1Y[x - line1Start2] = data[x];
	for (int x = line2Start1; x < line2Start1 + line2Len1; x++)
		line2X[x - line2Start1] = data[x];
	for (int x = line2Start2; x < line2Start2 + line2Len2; x++)
		line2Y[x - line2Start2] = data[x];

	printf("Point 1 X: %s, Y: %s\n", line1X, line1Y);
	printf("Point 2 X: %s, Y: %s", line2X, line2Y);

	getchar();

}